如何在MongoDB中找到具有最大值的给定类别的项目

时间:2016-03-11 10:10:25

标签: mongodb

假设我有一个这样的集合:

{_id: 1, value: 3, color: "white"}
{_id: 2, value: 5, color: "green"}
{_id: 3, value: 1, color: "white"}
{_id: 4, value: 2, color: "blue"}
{_id: 5, value: 4, color: "green"}

是否可以获得每种颜色的最高值的项目?

我们的示例的预期输出将是:

{_id: 1, value: 3, color: "white"}
{_id: 2, value: 5, color: "green"}
{_id: 4, value: 2, color: "blue"}

目标是在单个MongoDB请求中实现此结果。

2 个答案:

答案 0 :(得分:1)

您可以通过以下aggregation进行操作

{this.state.tituloRopa.map(function(el,  i) {
   return <Modulo5_ key={i} title={el.titulo} ruta={el.ruta } />
})}

答案 1 :(得分:0)

作为根据颜色最大值对文档进行分组的解决方案,您可以使用$max运算符

执行聚合操作
db.collection.aggregate([
{
      $group: {
      _id:{color:"$color"},
      value:{$max:"$value"}
      }
    }

  ]
);