0

集合中的一项如下所示。

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

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

4

1 回答 1

1

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

db.collection.aggregate([
    {"$unwind":"$notes"}, 
    {"$group":{"_id": null, "notes":{"$push":"$notes"}}}, 
    {"$project":{"_id":0, "notes":1}}
]);
于 2016-10-15T16:18:16.643 回答