具有Java的MongoDB:查找具有最大价值的文档

时间:2019-05-07 18:52:58

标签: java mongodb

我对MongoDB和聚合有基本的了解。我还没有找到一个清晰的示例,说明如何比较多个符合条件的文档并返回1个具有特定属性最大值的文档。

假设我们在集合中包含以下文档:

{ name: "a" , value: 2 }
{ name: "a" , value: 4 }
{ name: "a" , value: 6 }
{ name: "b" , value: 2 }
{ name: "b" , value: 8 }

如何过滤nameeq("name","a")),然后返回value最高的文档?

1 个答案:

答案 0 :(得分:0)

  

尝试

 db.collection.aggregate(
 [
   {
     $group: {
       _id: "$name",
       values: {$addToSet: "$value"}
     }
   },
   {
     $project:{
     _id: 0, name: "$_id", value: {$max: "$values"}
     }
   }
])