MongoDB में Date और $gte से पिछले सप्ताह के डॉक्यूमेंट खोजना
वर्तमान तारीख से 7 दिन पहले की तारीख की गणना करके $gte (ग्रेटर देन इक्वल) ऑपरेटर से क्वेरी करें।
वर्तमान तारीख चेक करें
> new Date();
ISODate("2019-05-14T08:32:42.773Z")
कलेक्शन बनाएं और विभिन्न तारीखों के डॉक्यूमेंट इन्सर्ट करें
> db.findObectInLastWeekDemo.insertOne({"ShippingDate": new ISODate("2019-05-01")});
{ "acknowledged": true, "insertedId": ObjectId("5cda7dc4bf3115999ed511e0") }
> db.findObectInLastWeekDemo.insertOne({"ShippingDate": new ISODate("2019-05-02")});
{ "acknowledged": true, "insertedId": ObjectId("5cda7dc4bf3115999ed511e1") }
> db.findObectInLastWeekDemo.insertOne({"ShippingDate": new ISODate("2019-05-08")});
{ "acknowledged": true, "insertedId": ObjectId("5cda7dc4bf3115999ed511e2") }
> db.findObectInLastWeekDemo.insertOne({"ShippingDate": new ISODate("2019-05-07")});
{ "acknowledged": true, "insertedId": ObjectId("5cda7dc4bf3115999ed511e3") }
> db.findObectInLastWeekDemo.insertOne({"ShippingDate": new ISODate("2019-05-09")});
{ "acknowledged": true, "insertedId": ObjectId("5cda7dc4bf3115999ed511e4") }
> db.findObectInLastWeekDemo.insertOne({"ShippingDate": new ISODate("2019-04-26")});
{ "acknowledged": true, "insertedId": ObjectId("5cda7dc4bf3115999ed511e5") }
सभी डॉक्यूमेंट देखें
> db.findObectInLastWeekDemo.find().pretty();
{ "_id": ObjectId("5cda7dc4bf3115999ed511e0"), "ShippingDate": ISODate("2019-05-01T00:00:00Z") }
{ "_id": ObjectId("5cda7dc4bf3115999ed511e1"), "ShippingDate": ISODate("2019-05-02T00:00:00Z") }
{ "_id": ObjectId("5cda7dc4bf3115999ed511e2"), "ShippingDate": ISODate("2019-05-08T00:00:00Z") }
{ "_id": ObjectId("5cda7dc4bf3115999ed511e3"), "ShippingDate": ISODate("2019-05-07T00:00:00Z") }
{ "_id": ObjectId("5cda7dc4bf3115999ed511e4"), "ShippingDate": ISODate("2019-05-09T00:00:00Z") }
{ "_id": ObjectId("5cda7dc4bf3115999ed511e5"), "ShippingDate": ISODate("2019-04-26T00:00:00Z") }
पिछले 7 दिनों के डॉक्यूमेंट खोजें
> db.findObectInLastWeekDemo.find({
ShippingDate: {
$gte: new Date(new Date() - 7 * 60 * 60 * 24 * 1000)
}
});
{ "_id": ObjectId("5cda7dc4bf3115999ed511e2"), "ShippingDate": ISODate("2019-05-08T00:00:00Z") }
{ "_id": ObjectId("5cda7dc4bf3115999ed511e4"), "ShippingDate": ISODate("2019-05-09T00:00:00Z") }
गणना समझें
new Date() - 7 * 60 * 60 * 24 * 1000
// 7 दिन * 24 घंटे * 60 मिनट * 60 सेकंड * 1000 मिलीसेकंड
// = 7 दिन पहले का टाइमस्टैम्प
बेहतर तरीका: एग्रीगेशन में $$NOW (MongoDB 4.2+)
db.collection.aggregate([
{ $match: {
ShippingDate: { $gte: { $dateSubtract: { startDate: "$$NOW", unit: "day", amount: 7 } } }
}}
])