【问题标题】:Mongoose/MongoDB how to query nested documents as a single arrayMongoose/MongoDB 如何将嵌套文档查询为单个数组
【发布时间】:2017-02-24 21:49:28
【问题描述】:

集合中的一项如下所示。

{
"_id" : ObjectId("4f7ee46e08403d063ab0b4f9"),
"name" : "MongoDB",
"notes" : [
            {
              "title" : "Hello MongoDB",
              "content" : "Hello MongoDB"
            },
            {
              "title" : "ReplicaSet MongoDB",
              "content" : "ReplicaSet MongoDB"
            }
         ]
}

假设我想将所有文档的所有注释作为一个数组检索,我应该如何写我的查询?举个 mongoose 和/或 mongoDB 的例子

【问题讨论】:

    标签: arrays node.js mongodb mongoose nested-documents


    【解决方案1】:

    您可以使用聚合来获得欲望结果。使用$unwind 阶段将数组值展平为文档。然后,跟随$group 阶段到$push 将所有音符放入一个数组中。或者,使用$project 阶段来输出预期的字段。

    db.collection.aggregate([
        {"$unwind":"$notes"}, 
        {"$group":{"_id": null, "notes":{"$push":"$notes"}}}, 
        {"$project":{"_id":0, "notes":1}}
    ]);
    

    【讨论】:

      猜你喜欢
      • 2012-10-17
      • 2015-04-18
      • 2019-10-09
      • 1970-01-01
      • 2021-02-25
      • 2016-08-16
      • 2018-03-09
      • 2019-02-20
      相关资源
      最近更新 更多