MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Grupo e classificação da estrutura de agregação do Mongodb


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

Isso classificará a coleção com base no tempo e depois agrupará por id de sessão. Cada grupo de ID de sessão terá uma matriz de subdocumentos que contêm a mensagem e a hora da mensagem. Ao classificar e enviar, as mensagens serão ordenadas por tempo em sua matriz de mensagens.