MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie kann man ein Feld abhängig von einer Bedingung $pushen?

Sie benötigen einen vorläufigen $match Schritt in Ihrer Pipeline, um nur die Dokumente auszuwählen, bei denen "Aktion" nicht gleich "Warten" ist.

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