我对MongoDB和聚合有基本的了解。我还没有找到一个清晰的示例,说明如何比较多个符合条件的文档并返回1个具有特定属性最大值的文档。
假设我们在集合中包含以下文档:
{ name: "a" , value: 2 }
{ name: "a" , value: 4 }
{ name: "a" , value: 6 }
{ name: "b" , value: 2 }
{ name: "b" , value: 8 }
如何过滤name
(eq("name","a")
),然后返回value
最高的文档?
答案 0 :(得分:0)
尝试
db.collection.aggregate(
[
{
$group: {
_id: "$name",
values: {$addToSet: "$value"}
}
},
{
$project:{
_id: 0, name: "$_id", value: {$max: "$values"}
}
}
])