聚合框架- MongoDB查询选择具有不同字段的文档



假设我有一个MongoDB集合,如下所示,其中每一行对应一个文档:

{name:'rick', age:30}
{name:'john', age:40}
{name:'rick', age:35}
{name:'john', age:20}
{name:'jeff', age:50}
{name:'jeff', age:40}

一些文档将"name"字段设置为相同的值(2 ricks, 2 johns和2 jeffs)。如果两个或更多文档的"name"字段设置为相同的值,那么我希望只选择年龄最大的文档。这样的:

{name:'rick', age:35}
{name:'john', age:40}
{name:'jeff', age:50}

有30岁的rick和35岁的rick吗?我选择35岁的瑞克!等等…

但是这个查询是怎样的呢?

db.getCollection('Mytest')。总({$组:{_id:{"名称":"美元的名字"},年龄:{$马克斯:"时代"美元}}})

输出:

{
    "_id" : {
        "name" : "jeff"
    },
    "age" : 50
}
/* 2 */
{
    "_id" : {
        "name" : "john"
    },
    "age" : 40
}
/* 3 */
{
    "_id" : {
        "name" : "rick"
    },
    "age" : 35
}
db.collection.aggregate([{$group:{_id:"$name",sal:{$max:"$age"}}}]);

最新更新