这是我的预约系列
{ _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" }
我怎样才能得到这样的结果
{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));
});
任何帮助,请
答案 0 :(得分:6)
使用$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}}
], ...)