【问题标题】:How to return Mongodb Aggregate pipeline docs to ONE document?如何将 Mongodb 聚合管道文档返回到一个文档?
【发布时间】: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 个文档,而不是一个文档。任何建议将不胜感激!提前致谢。

【问题讨论】:

    标签: mongodb mongodb-query aggregate-functions mgo


    【解决方案1】:

    Test code here

    查询

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

    【讨论】:

    • 谢谢塔基斯!!效果很好!
    • mongodb 文档很好,也有例子。
    猜你喜欢
    • 1970-01-01
    • 2021-06-01
    • 2023-02-10
    • 1970-01-01
    • 2017-10-27
    • 1970-01-01
    • 1970-01-01
    • 2015-08-26
    相关资源
    最近更新 更多