हालांकि यह सच है कि ObjectId एक "टाइमस्टैम्प" पर आधारित है, आम तौर पर यह ObjectId मान से इस तिथि को "निकालने" के लिए एक "क्लाइंट" लाइब्रेरी ऑपरेशन है।
आप इसे $where
, लेकिन इसे पूरे संग्रह को "स्कैन" करने की आवश्यकता होगी, इसलिए यह बहुत कुशल नहीं है:
db.collection.find(function() {
return (
( this._id.getTimestamp().valueOf() -
this._id.getTimestamp().valueOf() % ( 1000 * 60 * 60 * 24 ) )
== new Date("2014-07-14").valueOf() );
})
यह मूल रूप से यह देखने के लिए तुलना करेगा कि क्या ObjectId
उसी दिन बनाया गया था जिस दिन प्रदान की गई थी। अन्य दिनांक गणित या विधियाँ अन्य अंतरालों पर लागू होती हैं।