2013-05-19 43 views
2

这是我的任命收集集团按日期猫鼬

{ _id: ObjectId("518ee0bc9be1909012000002"), date: ISODate("2013-05-13T22:00:00Z"), patient:"John" } 

{ _id: ObjectId("518ee0bc9be1909012000002"), date: ISODate("2013-05-13T22:00:00Z"), patient:"alex" } 

{ _id: ObjectId("518ee0bc9be1909012000002"), date: ISODate("2013-05-13T22:00:00Z"), patient:"sara" } 

我怎样才能让我的resualt这样

{date: ISODate("2013-05-13T22:00:00Z"), 
patients:["John","alex","sara"] } 

我试试这个

Appointments.aggregate([ 
{ 
$group: { 
_id: '$date' 
} 
} 
], function(err, doc) { 
return console.log(JSON.stringify(doc)); 
}); 

任何帮助,请

回答

5

使用$push集成算组装patients数组中的$group

Appointments.aggregate([ 
    {$group: {_id: '$date', patients: {$push: '$patient'}}}, 
    {$project: {date: '$_id', patients: 1, _id: 0}} 
], ...) 

要包括患者ID在你的后续问题:

Appointments.aggregate([ 
    {$group: {_id: '$date', patients: {$push: { 
     patient: '$patient' 
     _id: '$_id' 
    }}}}, 
    {$project: {date: '$_id', patients: 1, _id: 0}} 
], ...) 
+0

感谢.... 如何推动_id与病人? ?? {日期:ISODate( “2013-05-13T22:00:00Z”), 患者: [{_id:518ee0bc9be1909012000002,患者: “约翰”},{ _id:518ee0bc9be1909012000002,患者: “亚历克斯”}, {_id:518ee0bc9be1909012000002,患者:“萨拉”}] } –

+0

@MnSa查看更新的答案。 – JohnnyHK

+0

非常感谢你... –