Mongo:分组,推送和sorting

我有一个MongoDB收集数据,按照以下;我想根据EmployeedID(即0001),然后sorting(按年龄)

{ "_id" : ObjectId("54d0512191a4da7736e9db43"), "EmployeeID" : "0001", "Speciality" : "xxx", "Code" : "P", "Age" : 8 } /* 1 */ { "_id" : ObjectId("54d0512191a4da7736e9db44"), "EmployeeID" : "0002", "Speciality" : "yyyyy", "Code" : "P", "Age" : 6 } /* 2 */ { "_id" : ObjectId("54d0512191a4da7736e9db45"), "EmployeeID" : "0001", "Speciality" : "zzz", "Code" : "P", "Age" : 5 } 

我知道我可以用以下方式进行分组。

 collection.aggregate([ {$match:{"EmployeeId":0001}}, {$group:{"_id":"$EmployeeID", "speciality":{$push:"$Speciality"}, "Code":{$push:"$Code"}, "Age":{$push:"$Age"}}} ]) 

但是,我怎么能在这里使用$sorting? 所以我的结果可能像下面这样

 [{ "EmployeeID" : "0001", "speciality" : [ "zzz","xxx"], "Code" :[ "P","P"], "Age" : [5,8] }] 

您可以在分组阶段之前对文档进行sorting:

 collection.aggregate([ {$sort: {_id: -1}}, {$match:{"EmployeeId":0001}}, {$group:{"_id":"$EmployeeID", "speciality":{$push:"$Speciality"}, "Code":{$push:"$Code"}, "Age":{$push:"$Age"}}} ])