MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Gruppo e ordinamento del framework di aggregazione Mongodb

Puoi farlo:

db.collection.aggregate( 
    {$sort:{"time":1}},
    { $group:
        { _id: "$sessionId",
        messages: { "$push": {message: "$msg", time: "$time"} }
        }
    } 
)

Questo ordinerà la raccolta in base all'ora, quindi raggrupperà per ID sessione. Ciascun gruppo di ID di sessione avrà una matrice di documenti secondari che contengono il messaggio e l'ora del messaggio. Ordinando e poi spingendo i messaggi verranno ordinati in base al tempo nell'array dei messaggi.