我有一个像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查询中生成相同的结果
答案 0 :(得分:0)
使用聚合
db.UserData.aggregate({$group:{_id:"$category", "maxValue":{$max:"$value"}}});