Mongodb查询相当于以下SQL查询

时间:2016-03-23 04:19:23

标签: c# mongodb mongodb-.net-driver mongo-collection mongo-cxx-driver

我有一个像UserData一样的表格,其结构类似于

 id category    value
 1  AR          100
 2  WT          90
 3  WT          12
 4  AR          1000
 5  AR          2005
 6  WT          122
 7  BP          112
 8  BP          18

现在我想选择在单个类别中具有最大值的所有行。所以我的结果集应该是。

id  category    value   
5   AR          2005    
6   WT          122     
7   BP          112 

我想在MongoDB查询中使用它。

它的sql等价于此

     select id,category,value from
        (select id,
                category,
                value,
                max(value)
        over (partition by category) result
        from   UserData ) a 
       where a.result=a.value order by a.id

我想知道如何在MongoDB查询中生成相同的结果

1 个答案:

答案 0 :(得分:0)

使用聚合

db.UserData.aggregate({$group:{_id:"$category", "maxValue":{$max:"$value"}}});