Problemet ser ud til at være med _id
du bruger til $group. Du bør gruppere efter $day
i stedet for null
, hvis du vil gruppere resultaterne efter dag. Prøv dette:
PriceHourly.aggregate([
{ $match: { date: { $gt: start, $lt: end } } },
{ $group: { _id: "$day", price: { $avg: '$price' } } }
], function(err, results){
console.log(results);
});
Når det er sagt, behøver du ikke at gemme dag og time som separate elementer i dokumentet. Det er overflødige data. Du kan udtrække day
og hour
fra date
felt i aggregeringsforespørgslen ved hjælp af Date Aggregation
operatører.