首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoDB中异构文档的聚合

MongoDB中异构文档的聚合
EN

Stack Overflow用户
提问于 2015-06-19 18:48:57
回答 1查看 306关注 0票数 1

我正在编写一个检查MongoDB会话存储的工具,其中的结构是包含变量的名称空间,其中包含变量的信息,大致如下:

代码语言:javascript
复制
{
    "some namespace" : {
        "some variable" : {
            "t" : "serialization type",
            "b" : "data value",
            "c" : "java class type"
        },
        "some other variable in this namespace" : {
            "t" : "serialization type",
            "b" : "data value",
            "c" : "java class type"
        },
        ...
    },
    ... // more namespaces
}

名称空间和变量的名称都不同。我编写了一个map--通过名称空间循环减少作业,循环遍历每个命名空间中的变量,并为每个命名空间中的每个变量发出。

但是,我想尝试切换到Mongo的聚合框架,以避免潜在的写锁问题。基于这些文档,我似乎必须指定$group的变量名,这似乎与像我这样的异构数据不兼容。是否有任何方法将迭代包含在聚合调用中?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-19 22:08:53

目前,要使用聚合框架,您必须知道字段名才能编写查询。有一些 提案来消除这一限制。

现在,考虑到您的设计,要使用聚合框架,您可能需要定期使用map来合并数据--将数据简化为大致类似的内容:

代码语言:javascript
复制
{
    namespaces: [
      { name: "some namespace",
        variables: [
          { name: "some variable",
            t : "serialization type",
            b : "data value",
            c : "java class type"
          },
          { name: "some other variable in this namespace",
            t : "serialization type",
            b : "data value",
            c : "java class type"
          },
          ... // more variables
        ]
      },
      ... // more namespaces
    ]
}

现在,使用聚合框架进行查询相对容易。承认你可能会处理陈旧的数据..。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30945274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档