Meskipun benar bahwa ObjectId sebagian didasarkan pada "stempel waktu", umumnya ini adalah operasi pustaka "klien" untuk "mengekstrak" tanggal ini dari nilai ObjectId.
Anda dapat melakukannya dengan evaluasi JavaScript $where
, tetapi perlu "memindai" seluruh koleksi, jadi sangat tidak efisien:
db.collection.find(function() {
return (
( this._id.getTimestamp().valueOf() -
this._id.getTimestamp().valueOf() % ( 1000 * 60 * 60 * 24 ) )
== new Date("2014-07-14").valueOf() );
})
Itu pada dasarnya akan dibandingkan untuk melihat apakah ObjectId
dibuat pada hari yang sama dengan tanggal yang ditentukan. Matematika tanggal atau metode lain berlaku untuk interval lain.