假设我有这样的收藏夹
var list= [{name : "Bob", age : "22"},{name : "John", age : "21"}, {name : "Pedro", age : "15"}, {name : "Bob", age : "11"}, {name : "Mark", age : "24"}]
如何查找具有map-reduce和aggregation-framework唯一名称的MongoDB?结果应为:John,Pedro,Mark
您可以使用$distinct(将返回所有唯一值)
db.collection.distinct("name")
[
"Bob",
"John",
"Pedro",
"Mark"
]
MongoDB聚合: $group,您可以在对值进行分组之后进行过滤(注意:汇总返回{key:value}对象的列表)
db.collection.aggregate([
{
$group: {
_id: "$name",
count: {
$sum: 1
}
}
},
{
$match: {
count: 1
}
},
{
$group: {
_id: null,
unique: {
$push: "$_id"
}
}
},
{
$project: {
_id: 0
}
}
])
[
{
"unique": [
"Pedro",
"Mark",
"John"
]
}
]