दो तारीखों के बीच फील्ड को काउंट और सम करने के लिए एग्रीगेशन $gte और $lte के साथ $sum का उपयोग करें। पहले कलेक्शन बनाएं:
> db.countandsumdemo.insertOne({"Value":10,"created_at":ISODate('2019-10-11')});
{ "acknowledged": true, "insertedId": ObjectId("5e038e6df5e889d7a51994fa") }
> db.countandsumdemo.insertOne({"Value":50,"created_at":ISODate('2019-01-31')});
{ "acknowledged": true, "insertedId": ObjectId("5e038e77f5e889d7a51994fb") }
> db.countandsumdemo.insertOne({"Value":100,"created_at":ISODate('2019-06-31')});
{ "acknowledged": true, "insertedId": ObjectId("5e038e8af5e889d7a51994fc") }
सभी डॉक्यूमेंट्स देखें:
> db.countandsumdemo.find().pretty();
आउटपुट:
दो तारीखों के बीच फील्ड को काउंट और सम करने की क्वेरी:
> db.countandsumdemo.aggregate([ { $match: { created_at: { $gte: new Date('2019-05-01'), $lte: new Date('2019-12-31') } } }, { $group: { _id: null, SUM: { $sum: "$Value" }, COUNT: { $sum: 1 } } } ]);परिणाम: