MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment $push un champ en fonction d'une condition ?

Vous avez besoin d'un $match dans votre pipeline pour sélectionner uniquement les documents où "action" n'est pas égal à "attendre".

db.collection.aggregate([
    { "$match": { "action": { "$ne": "wait" } } },
    { "$group": { 
        "_id": "$user.name", 
       "actions": { "$push": "$action" }, 
       "total": { "$sum": 1 } 
    }}
])