Sie können dies tun:
db.collection.aggregate(
{$sort:{"time":1}},
{ $group:
{ _id: "$sessionId",
messages: { "$push": {message: "$msg", time: "$time"} }
}
}
)
Dadurch wird die Sammlung nach Zeit sortiert und dann nach Sitzungs-ID gruppiert. Jede Sitzungs-ID-Gruppe hat eine Reihe von Unterdokumenten, die die Nachricht und den Zeitpunkt der Nachricht enthalten. Durch Sortieren und anschließendes Drücken werden die Nachrichten nach Zeit in Ihrem Nachrichten-Array geordnet.