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
かどうかを比較するために比較されます 指定された日付と同じ日に作成されました。他の日付の計算または方法は、他の間隔に適用されます。