Jika Anda hanya ingin total pesanan dalam jangka waktu tertentu maka Anda bisa menggunakan kueri rentang pada tanggal Anda menggunakan $gte
dan $lt
operator gaya:
var query = Model.find({
"createdDate": {
"$gte": new Date("2014-05-21"), "$lte": new Date("2014-05-29")
}
}).count()
query.exec(function(err, count) {
Dan itu hanya akan mengembalikan hitungan jika dokumen ditemukan dalam kisaran itu.
Jika Anda ingin menjumlahkan nilai dari dalam dokumen Anda, atau bahkan mengambil sesuatu seperti "total harian" dari dalam rentang tanggal tersebut, Anda dapat menggunakan kerangka kerja agregasi untuk melakukan ini:
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) {
Itu tidak hanya menggunakan $sum
operator untuk menambahkan nilai untuk bidang "orderTotal" kami, tetapi juga menggunakan agregasi tanggal
operator untuk mengelompokkan semua nilai sebagai setiap hari dalam rentang yang diberikan.
Jika kasus terakhir yang Anda inginkan, Anda dapat menggunakan berbagai operator di sana untuk memecah berbagai periode tanggal yang ingin Anda masukkan ke dalam hasil Anda.