Mongodb:3.4.4之前的对象到数组聚合?

Mongodb:3.4.4之前的对象到数组聚合?,mongodb,Mongodb,我使用的mongodb版本不支持$objectToArray 在更高版本的mongodb中,我成功地在聚合管道中使用了以下代码段: { $project: { _id: 1, arr: { $objectToArray: "$obj" } } } 其他答案建议在聚合管道之外使用objectToArray(sic)或脚本语言(python)或mongo解决方案 是否有一种方法可以在聚合管道中使用早期版本的mongo中的map/reduce或类似的东西

我使用的mongodb版本不支持
$objectToArray

在更高版本的mongodb中,我成功地在聚合管道中使用了以下代码段:

{
  $project: {
    _id: 1,
    arr: {
      $objectToArray: "$obj"
    }
  }
}
其他答案建议在聚合管道之外使用
objectToArray
(sic)或脚本语言(python)或mongo解决方案

是否有一种方法可以在聚合管道中使用早期版本的mongo中的map/reduce或类似的东西

数据输入:

[
  {
    "id": "0",
    "obj": {
      "obj-0": {"prop": "value"},
      "obj-1": {"prop": "value"}
    }
  }
]
预期结果:

[
  {
    "id": "0",
    "arr": [
      {"prop": "value"},
      {"prop": "value"}
    ]
  }
]

Hi@Saravana的可能重复您是否建议“您可以使用MapReduce实现这一点”是重复的?显然,这个问题的另一个答案是“使用objectToArray”,我不能使用它(参见我的问题)。如果您可以使用map reduce,请您解释如何给出上述示例(聚合阶段)。@Queenvictoria您可以添加样本数据和预期结果吗?没有map reduce在这里不适用,因为我们在这里没有要减少的内容。类似于javascript<代码>var arr=[];db.collection.find({},{obj:1}]).forEach(函数(myDoc){for(myDoc.obj中的var键){arr.push(myDoc.obj[key]);}})