Mongoose / MongoDB如何将嵌套文档作为单个数组进行查询

时间:2016-10-15 14:53:35

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

集合中的一个项目如下所示。

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

假设我想将所有文档的所有笔记检索为单个数组,我应该如何查询?给mongoose和/或mongoDB例子

1 个答案:

答案 0 :(得分:1)

您可以使用聚合来获得欲望结果。使用$unwind阶段将数组值展平为文档。然后,将$group阶段跟随$push将所有注释放入单个数组中。 (可选)使用$project阶段输出预期字段。

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