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

grupo no mongo excluindo valores nulos


Você precisa de um $match extra etapa do pipeline que filtrará os documentos recebidos com base no campo incorporado "$productAttribute.colour" existente e não nulo:
    db.productMetadata.aggregate([
    { 
        "$match": {
            "productAttribute.colour": { 
                "$exists": true, 
                "$ne": null 
            }
        }    
    },
    { 
        "$group": {
            "_id": {
                "color": "$productAttribute.colour",
                "gender": "$productAttribute.gender"
            },
            "count": { 
                "$sum": 1 
            }
        }   
    }        
]);