MongoDB में $lte और Date() का उपयोग करके एक्सपायर्ड डॉक्यूमेंट्स ढूंढना
वर्तमान तिथि से पहले या उसके बराबर तिथि वाले डॉक्यूमेंट्स खोजने के लिए, वर्तमान समय के साथ $lte` (कम या बराबर) ऑपरेटर का उपयोग करें।
नमूना डेटा बनाना
वर्तमान तिथि 2019-05-11 मानकर:
> db.getDocumentsExpiredDemo.insertOne({"ArrivalDate":new ISODate("2019-05-11")});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd563b17924bb85b3f4893b") }
> db.getDocumentsExpiredDemo.insertOne({"ArrivalDate":new ISODate("2019-01-01")});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd563bf7924bb85b3f4893c") }
> db.getDocumentsExpiredDemo.insertOne({"ArrivalDate":new ISODate("2019-05-10")});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd563ca7924bb85b3f4893d") }
> db.getDocumentsExpiredDemo.insertOne({"ArrivalDate":new ISODate("2019-02-01")});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd563e77924bb85b3f4893e") }
सभी डॉक्यूमेंट्स देखना
> db.getDocumentsExpiredDemo.find().pretty();
आउटपुट:
{ "_id" : ObjectId("5cd563b17924bb85b3f4893b"), "ArrivalDate" : ISODate("2019-05-11T00:00:00Z") }
{ "_id" : ObjectId("5cd563bf7924bb85b3f4893c"), "ArrivalDate" : ISODate("2019-01-01T00:00:00Z") }
{ "_id" : ObjectId("5cd563ca7924bb85b3f4893d"), "ArrivalDate" : ISODate("2019-05-10T00:00:00Z") }
{ "_id" : ObjectId("5cd563e77924bb85b3f4893e"), "ArrivalDate" : ISODate("2019-02-01T00:00:00Z") }
आज से पहले या आज एक्सपायर हुए डॉक्यूमेंट्स के लिए क्वेरी करना
> db.getDocumentsExpiredDemo.find({ "ArrivalDate": { $lte : new Date() } });
आउटपुट (2019-05-11 को चलाया गया):
{ "_id" : ObjectId("5cd563bf7924bb85b3f4893c"), "ArrivalDate" : ISODate("2019-01-01T00:00:00Z") }
{ "_id" : ObjectId("5cd563ca7924bb85b3f4893d"), "ArrivalDate" : ISODate("2019-05-10T00:00:00Z") }
{ "_id" : ObjectId("5cd563e77924bb85b3f4893e"), "ArrivalDate" : ISODate("2019-02-01T00:00:00Z") }
व्याख्या
new Date()- शेल में वर्तमान दिनांक/समय लौटाता है।$lte- उन डॉक्यूमेंट्स से मेल खाता है जहां ArrivalDate वर्तमान क्षण से कम या बराबर है।- 2019-05-11 वाला डॉक्यूमेंट शामिल नहीं है क्योंकि ISODate("2019-05-11") आधी रात (00:00:00) है, जबकि
new Date()में दिन का समय शामिल होता है।
सामान्य तिथि तुलना ऑपरेटर्स
| ऑपरेटर | अर्थ |
|---|---|
$lt | निर्दिष्ट तिथि से कम (सख्ती से पहले) |
$lte | निर्दिष्ट तिथि से कम या बराबर |
$gt | निर्दिष्ट तिथि से अधिक (सख्ती से बाद में) |
$gte | निर्दिष्ट तिथि से अधिक या बराबर |
बेहतर अभ्यास: तिथि सीमा क्वेरी
एक विशिष्ट दिन (पूरे दिन) के लिए, रेंज का उपयोग करें:
var start = new Date("2019-05-11T00:00:00Z");
var end = new Date("2019-05-12T00:00:00Z");
db.collection.find({ ArrivalDate: { $gte: start, $lt: end } });