I když je pravda, že ObjectId je částečně založeno na "časovém razítku", obecně se jedná o operaci "klientské" knihovny pro "extrahování" tohoto data z hodnoty ObjectId.
Můžete to udělat pomocí hodnocení JavaScriptu $where
, ale bude muset "naskenovat" celou sbírku, takže to není příliš efektivní:
db.collection.find(function() {
return (
( this._id.getTimestamp().valueOf() -
this._id.getTimestamp().valueOf() % ( 1000 * 60 * 60 * 24 ) )
== new Date("2014-07-14").valueOf() );
})
To bude v podstatě porovnávat, zda ObjectId
byl vytvořen ve stejný den jako uvedené datum. Pro jiné intervaly platí jiná matematika nebo metody data.