Om du bara vill ha de totala beställningarna inom en tidsperiod kan du bara använda en intervallfråga på ditt datum med $gte
och $lt
stiloperatorer:
var query = Model.find({
"createdDate": {
"$gte": new Date("2014-05-21"), "$lte": new Date("2014-05-29")
}
}).count()
query.exec(function(err, count) {
Och det returnerar bara antalet om dokument hittas inom det intervallet.
Om du vill summera ett värde inifrån ditt dokument, eller till och med verkligen hämta något som "dagliga totaler" från det datumintervallet kan du använda aggregeringsramverket för att göra detta:
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) {
Det använder inte bara $sum
operatorn för att lägga ihop värdena för vårt "orderTotal"-fält, men använder också en datumsammanställning
operatör för att gruppera alla värden för varje enskild dag inom det givna intervallet.
Om det sista fallet är vad du vill kan du använda olika operatorer där för att dela upp olika datumperioder som du vill ha i dina resultat.