java - MongoDB 与 Java : Finding the document with max value

标签 java mongodb

我对 MongoDB 和聚合只有最基本的了解。我无法找到一个清晰的示例来说明如何比较与某个条件匹配的多个文档并返回 1 个具有特定属性最大值的文档。

假设我们的集合中有以下文档:

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

如何按名称 (eq("name","a")) 进行过滤,然后返回具有最高的文档?

最佳答案

try this

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

关于java - MongoDB 与 Java : Finding the document with max value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56028852/

相关文章:

java - 从日期选择器和时间选择器获取日期和时间

linux - MongoDB 预读警告

filter - 基于嵌入文档计数的MongoDB查询

javascript - 为什么我的收藏中的项目没有显示在页面上? ( meteor )

javascript - Mongo/mongoose $facet 过滤器,如果客户应用过滤器,则返回所有产品的品牌/标签作为响应

java - Spring Data mongodb 日期范围查询

java - 如何通过拖放交换jtable中单元格的值

java - MANIFEST.MF 属性返回 null

java - 声称不相等的值,即使它们是相等的

java - 如何将值从 ListView 传递到 detalis Activity