sql >> Base de Datos >  >> NoSQL >> MongoDB

Grupo y clasificación del marco de agregación de Mongodb

Puedes hacer esto:

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

Esto ordenará la colección según el tiempo y luego la agrupará por ID de sesión. Cada grupo de ID de sesión tendrá una matriz de subdocumentos que contienen el mensaje y la hora del mensaje. Al ordenar y luego presionar, los mensajes se ordenarán por tiempo en su matriz de mensajes.