ObjectIdから時間を取得するのは簡単です ...ただし、msの精度は得られません。
org.bson.types.ObjectId 使用できるメソッドが2つあります:getTimeSecond() およびgetTime() (`getTimeSecond() * 1000Lと同じ )。これらはUNIXタイムスタンプを取得します。
私はSpringでMongoDBを使用していませんが、実際のObjectIdを手に入れることができれば たとえば、上記のメソッドの1つを呼び出すのと同じくらい簡単です。
今-時間範囲内のドキュメントをクエリするには、さかのぼってObjectIdを作成する必要があります タイムスタンプに基づくオブジェクト。繰り返しますが、これは単純です。ObjectId コンストラクターがあなたのためにこれを行うことができます:
ObjectId(Date time)
つまり、2つのObjectIdを作成します 次に、最小時間と最大時間の境界を表すインスタンスは、次のようなクエリを実行します。
db.collection.find({ "field" : { $gt: value1, $lt: value2 } } );
ここで、value1 およびvalue2 ObjectIdを表します ObjectId(Date time)を介して作成したインスタンス