För MongoDB:s $group-operator är inget värde också ett värde.
När du vill utesluta dokument där inte alla tre nycklarna finns kan du lägga till en $match -steg till din aggregeringspipeline som filtrerar alla dokument som inte har alla dessa nycklar.
db.collection.aggregate([
{ $match: {
"type" : { "$exists" : true},
"location" : { "$exists" : true},
"language" : { "$exists" : true}
}
},
{ $group: {
"_id": {
"location": "$location",
"type": "$typ",
"language": "$language"
},
"count": {$sum: 1}
}
}
]);