Вот как выглядит один документ:
{
"login_Id": "c",
"name": "Abhishek Soni",
"location": "BLAHBLAH",
"work": [
{
"date":ISODate("2014-01-01"),
"total_time": 100,
},
{
"date":ISODate("2014-09-02"),
"total_time": 100,
},
{
"date":ISODate("2014-01-01"),
"total_time": 10,
},
]
}
Я хочу выполнить запрос, который выдаст такой результат:
{login_Id: 'c', work:{'01' : 110, '02': 100, ... and so on}}
По сути, япросто хочу сгруппировать work
часть месяца по месяцам.
Вот что я пробовал:
db.employees.aggregate([
{
"$project": {
"_id": 0,
"login_Id": 1,
"time": {
"$sum": "$work.total_time"
}
}
},
{
"$group": {
"_id": {
"$dayOfYear": "$work.date"
},
"time": {
"$sum": "$work.total_time"
}
}
}
]);
Но это выдает null
.Если я удалю предложение группы, я получу общую сумму (т. Е. 210). Что не так?