Du kan göra så här:
db.collection.aggregate(
{$sort:{"time":1}},
{ $group:
{ _id: "$sessionId",
messages: { "$push": {message: "$msg", time: "$time"} }
}
}
)
Detta kommer att sortera samlingen baserat på tid och sedan gruppera efter sessions-id. Varje sessions-ID-grupp kommer att ha en uppsättning underdokument som innehåller meddelandet och tidpunkten för meddelandet. Genom att sortera och sedan trycka kommer meddelandena att ordnas efter tid i din meddelandematris.