node.js - Group by date in mongoose -
this appointment collection
{ _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" } how can resualt this
{date: isodate("2013-05-13t22:00:00z"), patients:["john","alex","sara"] } i try this
appointments.aggregate([ { $group: { _id: '$date' } } ], function(err, doc) { return console.log(json.stringify(doc)); }); any please
use $push aggregation operator assemble patients array in $group:
appointments.aggregate([     {$group: {_id: '$date', patients: {$push: '$patient'}}},     {$project: {date: '$_id', patients: 1, _id: 0}} ], ...) to include patient ids in follow-up question:
appointments.aggregate([     {$group: {_id: '$date', patients: {$push: {         patient: '$patient'         _id: '$_id'     }}}},     {$project: {date: '$_id', patients: 1, _id: 0}} ], ...) 
Comments
Post a Comment