如何 return Mongodb 将管道文档聚合为一个文档?

How to return Mongodb Aggregate pipeline docs to ONE document?

我知道这必须很简单,但就我的生活而言,我似乎无法在我的管道中生成正确的最后阶段来使其正常工作。以下是我在 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 个文档,而不是一个文档。任何建议将不胜感激!提前致谢。

Test code here

查询

  • 按 null 分组,将所有集合视为 1 组
db.collection.aggregate([
  {
    "$group": {
      "_id": null,
      "ids": {
        "$push": "$_id"
      }
    }
  },
  {
    "$unset": "_id"
  }
])