Một phần của cách đó nhưng bạn cần phải nhận các giá trị "riêng biệt" cho "holiday_type" trước, sau đó bạn $group
một lần nữa:
db.transactions.aggregate([
{ "$group": {
"_id": {
"employee" : "$employee",
"Month": { "$month" : "$date" },
"Year": { "$year" : "$date" },
"holiday_type" : "$holiday_type"
},
}},
{ "$group": {
"_id": {
"employee" : "$_id.employee",
"Month": "$_id.Month",
"Year": "$_id.Year"
},
"count": { "$sum": 1 }
}}
], { "allowDiskUse": true }
);
Đó là quy trình chung vì "khác biệt" trong SQL là một loại hoạt động phân nhóm. Vì vậy, nó là một $group
kép để có được kết quả chính xác của bạn.