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

groupe en mongo excluant les valeurs nulles

Vous avez besoin d'un $match supplémentaire étape du pipeline qui filtrera les documents entrants en fonction du champ intégré "$productAttribute.colour" existant et non nul :

    db.productMetadata.aggregate([
    { 
        "$match": {
            "productAttribute.colour": { 
                "$exists": true, 
                "$ne": null 
            }
        }    
    },
    { 
        "$group": {
            "_id": {
                "color": "$productAttribute.colour",
                "gender": "$productAttribute.gender"
            },
            "count": { 
                "$sum": 1 
            }
        }   
    }        
]);