mongodb查询出某个字段最大值的那条数据出来

时间:2022-02-09 01:15:20

第一种方法:使用sort

 

//先用sort进行排序

pharmicistaggregate.find(findcase).sort({yearmonth:-1}).limit(1).exec(function(err,data) {

if(err){ done(err); }else{ results2[number] = data; done(null,number); } });

第二种方法:使用aggregate

data :
{ 
    "_id" : ObjectId("58b68c3a58576b11a42ff230"), 
    "menu_id" : NumberInt(1), 
    "subMenu" : [
        {
            "menu_id" : NumberInt(100) 
        }, 
        {
            "menu_id" : NumberInt(14) 
        }, 
        {
            "menu_id" : NumberInt(64) 
        }
    ]
}
{ 
    "_id" : ObjectId("58b68c7558576b11a42ff232"), 
    "menu_id" : NumberInt(2)  
    "subMenu" : [
        {
            "menu_id" : NumberInt(15) 
        }, 
        {
            "menu_id" : NumberInt(120) 
        }
    ]
}
{ 
    "_id" : ObjectId("58b68c9558576b11a42ff234"), 
    "menu_id" : NumberInt(5) ,
    "subMenu" : [
    ]
}
db.x.aggregate([
{ 
    '$project':{ a: '$menu_id', b:{'$max':'$subMenu.menu_id'}}
},
{ 
    '$group':{_id:1, sub1_max: {'$max':'$a'}, sub2_max:{'$max':'$b'}}
}
])