sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB Aggregation Framework - Hvordan matches efter datointerval, grupper efter dage og returneringsgennemsnit for hver dag?

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.




  1. MongoDB estimatedDocumentCount()

  2. Hvordan får man nøglen fra værdi i nøgle/værdipar i redis butiksklient?

  3. Hvordan importerer man data fra mongodb til pandaer?

  4. Mongo-forespørgsel for at sortere efter særskilt antal