O problema parece estar com o
_id
você está usando para $group. Você deve agrupar por $day
em vez de null
, se desejar agrupar os resultados por dia. Tente isto:PriceHourly.aggregate([
{ $match: { date: { $gt: start, $lt: end } } },
{ $group: { _id: "$day", price: { $avg: '$price' } } }
], function(err, results){
console.log(results);
});
Dito isso, você não precisa armazenar o dia e a hora como elementos separados no documento. São dados redundantes. Você pode extrair o
day
e hour
de date
campo na consulta de agregação usando a Date Aggregation
operadores.