Я пытаюсь создать группу, используя поле идентификатора, поле даты и времени и проецировать сумму значений и поле даты.
db.getCollection('driver_collections').aggregate([
{$group : { _id: {driverid:"$driver_id",day:{ $dayOfMonth: "$time_in"},
month:{$month:"$time_in"},year:{$year:"$time_in"}},
amountCollected : {$sum:"$total_collection"}}
},{
$project: {
yearMonthDay: { $dateToString: { format: "%Y-%m-%d", date: "$time_in" }},
amountCollected : 1
}
}])
Я использовал вышеуказанный запрос и получил результат как
{
"_id" : {
"driverid" : "58014ce1f39e0f9dc40000b2",
"day" : 30,
"month" : 10,
"year" : 2016
},
"amountCollected" : 2094.0,
"yearMonthDay" : null
}
Мне нужно получить yearMonthDay как
"yerMonthDay": "2016-10-30"
Когда я использую $dateToString без $group, все работает нормально. Что я пропустил здесь.
time_in
в конвейере сразу после этапа$group
. - person chridam   schedule 09.11.2016