Đối với $ group-operator của MongoDB, không có giá trị nào cũng là một giá trị.
Khi bạn muốn loại trừ bất kỳ tài liệu nào không có cả ba khóa, bạn có thể thêm $ trận đấu -bước đến đường dẫn tổng hợp của bạn để lọc bất kỳ tài liệu nào không có tất cả các khóa này.
db.collection.aggregate([
{ $match: {
"type" : { "$exists" : true},
"location" : { "$exists" : true},
"language" : { "$exists" : true}
}
},
{ $group: {
"_id": {
"location": "$location",
"type": "$typ",
"language": "$language"
},
"count": {$sum: 1}
}
}
]);