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