sql >> Databáze >  >> NoSQL >> MongoDB

MongoDB Agregation Framework – Jak porovnat podle časového období, seskupit podle dnů a průměr návratnosti pro každý den?

Zdá se, že problém je s _id používáte pro $group. Měli byste seskupit podle $day spíše než null , pokud chcete výsledky seskupit podle dne. Zkuste toto:

PriceHourly.aggregate([
    { $match: { date: { $gt: start, $lt: end } } },
    { $group: { _id: "$day", price: { $avg: '$price' } } }
], function(err, results){
    console.log(results); 
});

To znamená, že nemusíte ukládat den a hodinu jako samostatné prvky v dokumentu. Jsou to nadbytečná data. Můžete extrahovat day a hour od date pole v agregačním dotazu pomocí Date Aggregation operátory.




  1. Symfony QueryBuilder vrací MongoDB kurzor místo pole objektů

  2. nelze spustit mongodb jako sudo

  3. Vrátí výsledek zřetězení zpětných volání volaný v rámci smyčky

  4. Vyprázdnit/smazat sadu v Redis?