【问题标题】:Can I transform MongoDB Document to contain an Array inside an Array?我可以转换 MongoDB 文档以在数组中包含一个数组吗?
【发布时间】:2016-04-04 10:27:39
【问题描述】:

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

{ "_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 实现吗?

【问题讨论】:

  • 您可以将数据插入您需要的架构中。
  • @Simulant 是的,我可以,但该格式对于其他查询也是空闲的。所以我认为目前这不是一个选择
  • @Simulant 可以使用 map reduce 来完成吗?

标签: mongodb mongodb-query


【解决方案1】:

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

【讨论】:

  • 按照我的说法,你应该按照上一个代码中所说的那样写。
  • 这是最后的手段:)
  • 什么意思,不能支持内部数组?
  • 据我所知,我们不能在 MongoDB 中使用内部数组。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-17
相关资源
最近更新 更多