Проблемът изглежда е с _id
използвате за $group. Трябва да групирате по $day
вместо null
, ако искате да групирате резултатите по дни. Опитайте това:
PriceHourly.aggregate([
{ $match: { date: { $gt: start, $lt: end } } },
{ $group: { _id: "$day", price: { $avg: '$price' } } }
], function(err, results){
console.log(results);
});
Въпреки това не е необходимо да съхранявате деня и часа като отделни елементи в документа. Това са излишни данни. Можете да извлечете day
и hour
от date
поле в заявката за агрегиране, използвайки Date Aggregation
оператори.