Selvom det er rigtigt, at ObjectId delvist er baseret på et "tidsstempel", er dette generelt en "klient" biblioteksoperation for at "udtrække" denne dato fra ObjectId-værdien.
Du kan gøre dette med JavaScript-evalueringen af $where
, men den skal "scanne" hele samlingen, så den er ikke særlig effektiv:
db.collection.find(function() {
return (
( this._id.getTimestamp().valueOf() -
this._id.getTimestamp().valueOf() % ( 1000 * 60 * 60 * 24 ) )
== new Date("2014-07-14").valueOf() );
})
Det vil grundlæggende sammenligne for at se, om ObjectId
blev oprettet samme dag som den angivne dato. Anden dato matematik eller metoder gælder for andre intervaller.