mongodb - 我可以转换 MongoDB 文档以在数组中包含一个数组吗?

标签 mongodb mongodb-query

我正在尝试转换看起来像这样的文档

{ "_id": 1,
  "created_at": DateTimeObject,
  "daily": [{ "impressions":13,
              "clicks": 13,
              "day": "2015-01-01" },
            { "impressions":15,
              "clicks": 15,
              "day": "2015-01-02" },
            { "impressions":20,
              "clicks": 20,
              "day": "2015-01-03" }]
}

{ "_id": 1,
  "impressions": [["2015-01-01", 13], 
                  ["2015-01-02", 15], 
                  ["2015-01-03", 20]],
  "clicks": [["2015-01-01", 13], 
             ["2015-01-02", 15], 
             ["2015-01-03", 20]] }

目前使用 unwind 和 group 我可以得到以下格式的数据

{ "_id": 1,
  "impressions": [{ "date": "2015-01-01", "value":13], 
                  {"date":"2015-01-02", "value":15}, 
                  {"date":"2015-01-03", "value":20}],
  "clicks": [{"date": "2015-01-01", "value":13}, 
             {"date": "2015-01-01", "value":15}, 
             {"date": "2015-01-01", "value":20}] }

我不想在数据库之外执行此操作,因为需要从类似文档生成大约 150 - 200 个折线图,我更愿意只进行转换。

编辑:这可以通过 map reduce 实现吗?

最佳答案

Mongodb 不支持内部数组。你只需要用 unwind 和 group 来写。

关于mongodb - 我可以转换 MongoDB 文档以在数组中包含一个数组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36400151/

相关文章:

c# - MongoDb 3.4 C# 驱动程序 - 如何使用 C# 驱动程序创建等效聚合查询

mongodb - 获取具有完全相同 key 的文档

ruby-on-rails - 尝试使用 mongoid 作为 orm in rails 连接到 ec2 上的 mongodb 实例

javascript - 尽管存在不安全,但 meteor 更新访问被拒绝

python - Mongodb DeprecationWarning : count is deprecated. 使用 Collection.count_documents 代替

node.js - 使用findOneAndUpdate如何检查文档是否被插入或更新?

node.js - Mongoose 输出错误 "Error: connection closed"

linux - 在树莓派上安装 MongoDB - -bash : mongo: command not found

node.js - Actor 错误: Cast to undefined_method error failed while trying to save in mongoose

java - mongodb 与 java 中的 where 子句不同