$where और JavaScript Date मेथड्स से महीना/दिन फ़िल्टर करें
MongoDB में डेट फ़ील्ड से केवल महीना और दिन के आधार पर रिकॉर्ड्स खोजने के लिए $where क्लॉज में JavaScript getMonth() और getDate() मेथड्स का उपयोग करें।
उदाहरण: संग्रह बनाना
> db.demo181.insertOne({"ShippingDate": new ISODate("2020-01-10")});
{ "acknowledged": true, "insertedId": ObjectId("5e398a699e4f06af551997fe") }
> db.demo181.insertOne({"ShippingDate": new ISODate("2019-12-11")});
{ "acknowledged": true, "insertedId": ObjectId("5e398a729e4f06af551997ff") }
> db.demo181.insertOne({"ShippingDate": new ISODate("2018-01-10")});
{ "acknowledged": true, "insertedId": ObjectId("5e398a7d9e4f06af55199800") }
> db.demo181.insertOne({"ShippingDate": new ISODate("2020-10-12")});
{ "acknowledged": true, "insertedId": ObjectId("5e398a879e4f06af55199801") }
सभी डॉक्यूमेंट्स देखना
> db.demo181.find();
{ "_id": ObjectId("5e398a699e4f06af551997fe"), "ShippingDate": ISODate("2020-01-10T00:00:00Z") }
{ "_id": ObjectId("5e398a729e4f06af551997ff"), "ShippingDate": ISODate("2019-12-11T00:00:00Z") }
{ "_id": ObjectId("5e398a7d9e4f06af55199800"), "ShippingDate": ISODate("2018-01-10T00:00:00Z") }
{ "_id": ObjectId("5e398a879e4f06af55199801"), "ShippingDate": ISODate("2020-10-12T00:00:00Z") }
महीना और दिन से खोजने की क्वेरी
जनवरी (महीना 0) या दिन 10 वाले रिकॉर्ड्स:
> db.demo181.find({
$where: function() {
return this.ShippingDate.getMonth() == 0 || this.ShippingDate.getDate() == 10;
}
})
आउटपुट:
{ "_id": ObjectId("5e398a699e4f06af551997fe"), "ShippingDate": ISODate("2020-01-10T00:00:00Z") }
{ "_id": ObjectId("5e398a7d9e4f06af55199800"), "ShippingDate": ISODate("2018-01-10T00:00:00Z") }
चेतावनी:
$whereJavaScript इंजन का उपयोग करता है, जो धीमा है और इंडेक्स उपयोग नहीं करता। प्रोडक्शन में डेट रेंज क्वेरी या एग्रीगेशन में$month,$dayOfMonthऑपरेटर्स का उपयोग करें।