我将我的项目放在一个集合中,如下所示:
{
"_id": {
"$oid": "6092037099edca65f29c09d0"
},
"items": [{"name": "item1"}, {"name": "item2"}, {"name": "item3"}]
}
我想运行一个查询,返回所有集合中的不同项目。
答案 0 :(得分:1)
您可以使用聚合框架和组操作来获取不同的项目。
首先,获取只有一个项目而不是项目数组的文档。然后,按项目对这些文档进行分组。您将获得与数组中存在的唯一项一样多的组。最后,将组的 _id_
字段投影到您需要的字段。
以下是 Mongo 查询的示例:
db.collection.aggregate([
{
$unwind: '$items'
},
{
$group: {
_id: "$items"
}
},
{
$project: {
"_id": 0,
"item": "$_id"
}
}
])