Jeśli chcesz uzyskać tylko sumę zamówień w określonym czasie, możesz po prostu użyć zapytania zakresowego w dniu, używając $gte
i $lt
operatory stylu:
var query = Model.find({
"createdDate": {
"$gte": new Date("2014-05-21"), "$lte": new Date("2014-05-29")
}
}).count()
query.exec(function(err, count) {
A to po prostu zwróci liczbę znalezionych dokumentów w tym zakresie.
Jeśli chcesz zsumować wartość z wnętrza dokumentu, a nawet pobrać coś takiego jak „suma dzienna” z tego zakresu dat, możesz w tym celu użyć struktury agregacji:
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) {
To nie tylko korzysta z $sum
operator do zsumowania wartości naszego pola „orderTotal”, ale także korzysta z Agregacja dat
operator do grupowania według wszystkich wartości każdego dnia w podanym zakresie.
Jeśli ten ostatni przypadek jest tym, czego chcesz, możesz użyć różnych operatorów, aby podzielić różne okresy dat, które chcesz umieścić w swoich wynikach.