इसे ठीक करने के लिए MongoDB aggregate() में $dateFromString का उपयोग करें। $dateFromString डेट/टाइम स्ट्रिंग को डेट ऑब्जेक्ट में कनवर्ट करता है।
नमूना डेटा बनाना (स्ट्रिंग फॉर्मेट में तारीखें)
> db.demo619.insertOne({"DueDate":"10-10-2020"});
> db.demo619.insertOne({"DueDate":"12-01-2019"});
> db.demo619.insertOne({"DueDate":"28-10-2010"});
दस्तावेज़ देखना
> db.demo619.find();
{ "DueDate" : "10-10-2020" }
{ "DueDate" : "12-01-2019" }
{ "DueDate" : "28-10-2010" }
स्ट्रिंग को डेट ऑब्जेक्ट में कनवर्ट करने की क्वेरी
> db.demo619.aggregate( [
{ $project: {
DueDate: {
$dateFromString: {
dateString: '$DueDate',
timezone: 'America/New_York'
}
}
}}
] )
परिणाम (ISODate ऑब्जेक्ट्स):
{ "DueDate" : ISODate("2020-10-10T04:00:00Z") }
{ "DueDate" : ISODate("2019-01-12T05:00:00Z") }
{ "DueDate" : ISODate("2010-10-28T04:00:00Z") }
नोट: $dateFromString डिफ़ॉल्ट रूप से "YYYY-MM-DD" फॉर्मेट अपेक्षा करता है। यदि आपका फॉर्मेट अलग है (जैसे "DD-MM-YYYY"), तो आपको पहले स्ट्रिंग को पार्स/रीफॉर्मेट करना होगा या format पैरामीटर का उपयोग करना होगा (MongoDB 4.0+ में उपलब्ध)।