MongoDB-在集合中查找某个字段的$max时获取整个文档
因此,我们有一个类似于以下文档的文档集合:MongoDB-在集合中查找某个字段的$max时获取整个文档,mongodb,Mongodb,因此,我们有一个类似于以下文档的文档集合: {name : "Joe", age: 99} {name : "Hazel", age: 23} {name : "Alice", age: 81} 我可以通过以下管道聚合来获得最大年龄: {$group : {$max : "$age"}} 但是,这将只返回age的实际最大值,而我对age字段最大的整个文档感兴趣。i、 e,对于上面的收集,我想得到这个: {name : "Joe", age: 99} 这也可以通过$project db.co
{name : "Joe", age: 99}
{name : "Hazel", age: 23}
{name : "Alice", age: 81}
我可以通过以下管道聚合来获得最大年龄:
{$group : {$max : "$age"}}
但是,这将只返回age
的实际最大值,而我对age
字段最大的整个文档感兴趣。i、 e,对于上面的收集,我想得到这个:
{name : "Joe", age: 99}
这也可以通过$project
db.collection.aggregate([
{
$project: {
age: {
$max: "$age"
},
name: 1
}
}
])
我想说最简单的方法不是使用
aggregate
,而是使用findOne
db.collection.findOne({}).sort({'age':-1})
如果您确实想继续使用聚合,我建议按年龄排序,然后限制为1。基本上做findOne
做的事情
任何其他方式都需要更多的阶段
确保age
字段已编制索引,此查询将非常快速