Nếu bạn chỉ muốn tổng số đơn đặt hàng trong một khoảng thời gian thì bạn có thể chỉ cần sử dụng truy vấn phạm vi vào ngày của mình bằng cách sử dụng $gte
và $lt
toán tử kiểu:
var query = Model.find({
"createdDate": {
"$gte": new Date("2014-05-21"), "$lte": new Date("2014-05-29")
}
}).count()
query.exec(function(err, count) {
Và điều đó sẽ chỉ trả về số lượng nếu tài liệu được tìm thấy trong phạm vi đó.
Nếu bạn muốn tính tổng một giá trị từ bên trong tài liệu của mình hoặc thậm chí thực sự truy xuất một giá trị nào đó như "tổng hàng ngày" từ trong phạm vi ngày đó thì bạn có thể sử dụng khung tổng hợp để thực hiện việc này:
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) {
Điều đó không chỉ sử dụng $sum
toán tử để thêm các giá trị cho trường "orderTotal" của chúng tôi, nhưng cũng sử dụng tổng hợp ngày
toán tử để nhóm trên tất cả các giá trị theo từng ngày trong phạm vi đã cho.
Nếu trường hợp cuối cùng đó là những gì bạn muốn, bạn có thể sử dụng các toán tử khác nhau ở đó để chia nhỏ các khoảng thời gian ngày khác nhau mà bạn muốn chứa trong kết quả của mình.