U kunt dit doen:
db.collection.aggregate(
{$sort:{"time":1}},
{ $group:
{ _id: "$sessionId",
messages: { "$push": {message: "$msg", time: "$time"} }
}
}
)
Hiermee wordt de verzameling gesorteerd op tijd en vervolgens gegroepeerd op sessie-ID. Elke sessie-ID-groep heeft een reeks subdocumenten die het bericht en de tijd van het bericht bevatten. Door te sorteren en vervolgens te pushen, worden de berichten op tijd gerangschikt in uw berichtenarray.