我有数据
{"name" : "user1", age : 40 }
{"name" : "user2", age : 45 }
{"name" : "user3", age : 50 }
{"name" : "user4", age : 40 }
{"name" : "user5", age : 40 }
{"name" : "user6", age : 21 }
我希望所有行都具有最大年龄。
基本上获取列中列值最大的所有行。
SQL查询:SELECT * FROM Person WHERE age = (SELECT max(age) FROM Person)
我怎样才能在MongoDB中做同样的事情?谢谢
答案 0 :(得分:1)
您可以使用聚合框架执行此操作:
db.collection.aggregate([
{ "$group": {
"_id": "$age",
"docs": { "$push": "$$ROOT" }
}},
{ "$sort": { "_id": -1 } },
{ "$limit": 1 }
])