Я пытаюсь объединить сотрудников, используя отдел и статус, для расчета суммы сумм для каждого состояния. Отсюда:MongoDB Aggregation Несколько ключей
{
name : "Employee_1",
department: "hr",
status : "exist"
},
{
name : "Employee_2",
department: "acme",
status : "absent"
},
{
name : "Employee_3",
department: "acme",
status : "absent"
}
...
к этому:
{
department: "hr",
statuses: {
exist: 1,
absent: 0
}
},
{
department: "acme",
statuses: {
exist: 0,
absent: 2
}
}
...
Я пытаюсь сделать это с помощью:
Employee.aggregate(
{ $group: {
_id: '$department',
statuses: { $addToSet: "$status" }
}},
{ $project: { _id: 1, statuses: 1 }},
function(err, summary) {
console.log(summary);
}
);
я получаю только статусы в массиве производства "$ addToSet":
{
department: "hr",
statuses: [
'exist',
'absent'
]
},
{
department: "acme",
statuses: [
'exist',
'absent'
]
}
...
Как правильно поставить «{$ sum: 1}» для каждой из ста tuses? Спасибо за ответ.