集合中的一个项目如下所示。
{
"_id" : ObjectId("4f7ee46e08403d063ab0b4f9"),
"name" : "MongoDB",
"notes" : [
{
"title" : "Hello MongoDB",
"content" : "Hello MongoDB"
},
{
"title" : "ReplicaSet MongoDB",
"content" : "ReplicaSet MongoDB"
}
]
}
假设我想将所有文档的所有笔记检索为单个数组,我应该如何查询?给mongoose和/或mongoDB例子
答案 0 :(得分:1)
您可以使用聚合来获得欲望结果。使用$unwind
阶段将数组值展平为文档。然后,将$group
阶段跟随$push
将所有注释放入单个数组中。 (可选)使用$project
阶段输出预期字段。
db.collection.aggregate([
{"$unwind":"$notes"},
{"$group":{"_id": null, "notes":{"$push":"$notes"}}},
{"$project":{"_id":0, "notes":1}}
]);