आपके प्रश्न के अनुसार आप एक मोंगोडब संग्रह से वर्तमान दिन के दस्तावेज़ प्राप्त करना चाहते हैं . mongoDB शेल में जब आप new Date()
type टाइप करते हैं यह आपको समय के साथ वर्तमान दिनांक देता है और जब आप एक ही new Date()
run चलाते हैं तो यह मान हमेशा भिन्न होता है तो शायद आपकी क्वेरी इस प्रकार है:
db.collectionName.find({"start_date":new Date()}).pretty()
लेकिन, मुझे लगता है कि यह क्वेरी उन दस्तावेज़ों को वापस कर देती है जो आपके संग्रह में प्रस्तुत करेंगे लेकिन वही वर्तमान Date
मूल्य आपके दस्तावेज़ों में प्रस्तुत नहीं हो सकता है इसलिए इस मामले में आपको निम्नलिखित का उपयोग करना चाहिए
db.collectionName.find({"start_date":{"$lte":new Date()}}).pretty()
या
db.collectionName.find({"start_date":{"$gte":new Date()}}).pretty()
कुछ मामलों में यदि आप year,month,day
. के साथ सटीक मिलान खोजना चाहते हैं तो आपको एकत्रीकरण
का उपयोग करना चाहिए $project में $year,$month,$dayOfMonth
के साथ इस तरह:
db.collectionName.aggregate({
"$project": {
"year": {
"$year": "$date"
},
"month": {
"$month": "$date"
},
"day": {
"$dayOfMonth": "$date"
}
}
}, {
"$match": {
"year": new Date().getFullYear(),
"month": new Date().getMonth() + 1, //because January starts with 0
"day": new Date().getDate()
}
})
उपरोक्त एकत्रीकरण क्वेरी में उन दस्तावेज़ों को वापस कर दिया जाएगा जो वर्तमान तिथि से मेल खाते हैं जैसे year,month,day
वर्तमान तिथि का। साथ ही आप $match
. को बदल दें के रूप में
var currentDate = new Date()
{
"$match": {
"year": currentDate.getFullYear(),
"month": currentDate.getMonth() + 1, //because January starts with 0
"day": currentDate.getDate()
}
}