我知道这必须很简单,但是对于我的生命,我似乎无法在我的管道中生成正确的最后阶段以使其工作。以下是我在mongo查询中的一个阶段的文档输出:
{ "_id" : ObjectId("61435ceb233ce0118c1d93ec") }
{ "_id" : ObjectId("61435cf29598d31c17f0d839") }
{ "_id" : ObjectId("611e5cf953396d78985d222f") }
{ "_id" : ObjectId("61435cf773b8b06c848af83e") }
{ "_id" : ObjectId("61435cfd7ac204efa857e7ce") }
{ "_id" : ObjectId("611e5cf953396d78985d2237") }
我想把这些文档变成一个单一的文档与数组:
{
"_id" : [
ObjectId("61435ceb233ce0118c1d93ec"),
ObjectId("61435cf29598d31c17f0d839"),
ObjectId("611e5cf953396d78985d222f"),
ObjectId("61435cf773b8b06c848af83e"),
ObjectId("61435cfd7ac204efa857e7ce"),
ObjectId("611e5cf953396d78985d2237")
]
}
管道中的最后一个阶段很简单:
{
$group:{_id:"$uniqueIds"}
}
我已经尝试了从$push到$mergeObjects的一切,但无论我做什么,它都会以某种形状或形式返回原始的6个文档,而不是一个文档。任何建议将非常感激!提前谢谢。
此处测试代码
查询
- group by null,将所有集合视为1组
db.collection.aggregate([
{
"$group": {
"_id": null,
"ids": {
"$push": "$_id"
}
}
},
{
"$unset": "_id"
}
])