Hoewel het waar is dat de ObjectId gedeeltelijk is gebaseerd op een "tijdstempel", is dit over het algemeen een "client"-bibliotheekbewerking om deze datum uit de ObjectId-waarde te "extraheren".
U kunt dit doen met de JavaScript-evaluatie van $where
, maar het zal de hele collectie moeten "scannen", dus is niet erg efficiënt:
db.collection.find(function() {
return (
( this._id.getTimestamp().valueOf() -
this._id.getTimestamp().valueOf() % ( 1000 * 60 * 60 * 24 ) )
== new Date("2014-07-14").valueOf() );
})
Dat zal in principe vergelijken om te zien of de ObjectId
is gemaakt op dezelfde dag als de opgegeven datum. Andere datumberekeningen of methoden zijn van toepassing op andere intervallen.