हालांकि $date
MongoDB विस्तारित JSON का एक हिस्सा है और यही आपको mongoexport
के साथ डिफ़ॉल्ट रूप से मिलता है मुझे नहीं लगता कि आप वास्तव में इसे क्वेरी के हिस्से के रूप में उपयोग कर सकते हैं।
यदि $date
. के साथ सटीक खोज करने का प्रयास करें नीचे की तरह:
db.foo.find({dt: {"$date": "2012-01-01T15:00:00.000Z"}})
आपको त्रुटि मिलेगी:
error: { "$err" : "invalid operator: $date", "code" : 10068 }
इसे आजमाएं:
db.mycollection.find({
"dt" : {"$gte": new Date("2013-10-01T00:00:00.000Z")}
})
या (@user3805045 द्वारा निम्नलिखित टिप्पणियां):
db.mycollection.find({
"dt" : {"$gte": ISODate("2013-10-01T00:00:00.000Z")}
})
ISODate
समय के बिना तिथियों की तुलना करने की भी आवश्यकता हो सकती है (@MattMolnar द्वारा नोट किया गया)।
डेटा प्रकार के अनुसार मोंगो शैल में दोनों बराबर होना चाहिए:
<ब्लॉकक्वॉट>मोंगो शेल तारीख को वापस करने के लिए विभिन्न तरीके प्रदान करता है, या तो एक स्ट्रिंग के रूप में या एक तिथि वस्तु के रूप में:
- दिनांक() विधि जो वर्तमान तिथि को एक स्ट्रिंग के रूप में लौटाती है।
- नई तिथि () कंस्ट्रक्टर जो आईएसओडेट () रैपर का उपयोग करके डेट ऑब्जेक्ट लौटाता है।
- ISODate() कंस्ट्रक्टर जो ISODate() रैपर का उपयोग करके डेट ऑब्जेक्ट लौटाता है।
और ISODate
. का उपयोग कर रहे हैं अभी भी एक दिनांक वस्तु लौटानी चाहिए।
{"$date": "ISO-8601 string"}
सख्त JSON प्रतिनिधित्व की आवश्यकता होने पर उपयोग किया जा सकता है। एक संभावित उदाहरण Hadoop कनेक्टर है।