MongoDB列中包含最大值的所有条目

时间:2016-10-21 06:46:58

标签: mongodb mongodb-query aggregation-framework

我有数据

{"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中做同样的事情?谢谢

1 个答案:

答案 0 :(得分:1)

您可以使用聚合框架执行此操作:

db.collection.aggregate([
    { "$group": { 
        "_id": "$age", 
        "docs": { "$push": "$$ROOT" } 
    }},
    { "$sort": { "_id": -1 } },
    { "$limit": 1 }
])