Se desideri solo il totale degli ordini entro un periodo di tempo, puoi semplicemente utilizzare una query di intervallo nella tua data utilizzando $gte
e $lt
operatori di stile:
var query = Model.find({
"createdDate": {
"$gte": new Date("2014-05-21"), "$lte": new Date("2014-05-29")
}
}).count()
query.exec(function(err, count) {
E questo restituirà solo il conteggio se i documenti sono stati trovati all'interno di quell'intervallo.
Se vuoi sommare un valore dall'interno del tuo documento, o addirittura recuperare qualcosa come "totali giornalieri" da quell'intervallo di date, puoi utilizzare il framework di aggregazione per farlo:
Model.aggregate([
{ "$match": {
"$gte": new Date("2014-05-21"), "$lte": new Date("2014-05-29")
}},
{ "$group": {
"_id": { "$dayOfYear": "$createdDate" }
"totalValue": { "$sum": "$orderTotal" }
}}
],
function(err, result) {
Ciò non solo fa uso di $sum
operatore per sommare i valori per il nostro campo "orderTotal", ma utilizza anche un aggregazione di date
operatore per raggruppare tutti i valori come ogni singolo giorno all'interno dell'intervallo specificato.
Se l'ultimo caso è quello che desideri, puoi utilizzare vari operatori per suddividere i vari periodi di date che desideri contengano nei tuoi risultati.