下面提供了mongodb中的样本数据,
data = [{'name':'a','value':2},
{'name':'a','value':3},
{'name':'b','value':1},
{'name':'b','value':3},
{'name':'c','value':2}]
我已经知道如何找到一个与名字'a'相匹配的人:
db.lol.find_one({'name': 'a']},sort=[("value", pymongo.DESCENDING)])
如何使用pymongo获取具有最高值的每个名称的所有数据,如下所示:
data = [{'name':'a','value':3},
{'name':'b','value':3},
{'name':'c','value':2}]
答案 0 :(得分:0)
db.lol.find_one({},sort=[("value", pymongo.DESCENDING)])
答案 1 :(得分:0)
您可以在此处使用简单的$group
与$max
聚合:
db.lol.aggregate([
{
$group : {
_id : { name : '$name' },
value : { $max : '$value' }
}
},
{
$project : {
_id : 0,
value : 1,
name : "$_id.name"
}
}
]);