MongoDB में डेटा फ़िल्टर करने के लिए $match का उपयोग करें और दो तारीखों के बीच डेटा प्राप्त करने के लिए $gte और $lte ऑपरेटर्स का उपयोग करें। आइए एक कलेक्शन बनाते हैं जिसमें डॉक्यूमेंट्स हों:
> db.demo560.insertOne({"value1":40,"value2":40,shippingDate:new ISODate("2020-02-26")});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8f3d5254b4472ed3e8e867") }
> db.demo560.insertOne({"value1":20,"value2":60,shippingDate:new ISODate("2020-02-26")});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8f3d5254b4472ed3e8e868") }
> db.demo560.insertOne({"value1":40,"value2":70,shippingDate:new ISODate("2020-03-31")});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8f3d5254b4472ed3e8e869") }
> db.demo560.insertOne({"value1":40,"value2":130,shippingDate:new ISODate("2020-03-31")});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8f3d5254b4472ed3e8e86a") }
find() मेथड से सभी डॉक्यूमेंट्स देखें:
> db.demo560.find();
आउटपुट:
{ "_id" : ObjectId("5e8f3d5254b4472ed3e8e867"), "value1" : 40, "value2" : 40, "shippingDate" : ISODate("2020-02-26T00:00:00Z") }
{ "_id" : ObjectId("5e8f3d5254b4472ed3e8e868"), "value1" : 20, "value2" : 60, "shippingDate" : ISODate("2020-02-26T00:00:00Z") }
{ "_id" : ObjectId("5e8f3d5254b4472ed3e8e869"), "value1" : 40, "value2" : 70, "shippingDate" : ISODate("2020-03-31T00:00:00Z") }
{ "_id" : ObjectId("5e8f3d5254b4472ed3e8e86a"), "value1" : 40, "value2" : 130, "shippingDate" : ISODate("2020-03-31T00:00:00Z") }
दो तारीखों के बीच और विशिष्ट मान (यहां value1 = 40) के साथ डेटा प्राप्त करने के लिए aggregation पाइपलाइन:
> db.demo560.aggregate([
... { $match: { "value1": 40, "shippingDate": { "$gte": ISODate("2020-02-26"), "$lte": ISODate("2020-03-31") } } },
... { $group: { "_id": "$shippingDate", total: { $sum: "$value2" }, count: { $sum: 1 } } }
... ])
परिणाम:
{ "_id" : ISODate("2020-03-31T00:00:00Z"), "total" : 200, "count" : 2 }
{ "_id" : ISODate("2020-02-26T00:00:00Z"), "total" : 40, "count" : 1 }