如何将 Mongodb 聚合管道文档返回到一个文档?
Posted
技术标签:
【中文标题】如何将 Mongodb 聚合管道文档返回到一个文档?【英文标题】:How to return Mongodb Aggregate pipeline docs to ONE document? 【发布时间】:2021-11-16 05:51:13 【问题描述】:我知道这一定很简单,但在我的一生中,我似乎无法在我的管道中生成正确的最后阶段来使其正常工作。以下是我在 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 个文档,而不是一个文档。任何建议将不胜感激!提前致谢。
【问题讨论】:
【参考方案1】:Test code here
查询
按 null 分组,将所有集合视为 1 个组db.collection.aggregate([
"$group":
"_id": null,
"ids":
"$push": "$_id"
,
"$unset": "_id"
])
【讨论】:
谢谢塔基斯!!效果很好! mongodb 文档很好,也有例子。以上是关于如何将 Mongodb 聚合管道文档返回到一个文档?的主要内容,如果未能解决你的问题,请参考以下文章