第一种方法:使用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'}} } ])