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

Como $ empurrar um campo dependendo de uma condição?


Você precisa de um $match preliminar estágio em seu pipeline para selecionar apenas os documentos em que "ação" não é igual a "esperar".
db.collection.aggregate([
    { "$match": { "action": { "$ne": "wait" } } },
    { "$group": { 
        "_id": "$user.name", 
       "actions": { "$push": "$action" }, 
       "total": { "$sum": 1 } 
    }}
])