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)
を介して作成したインスタンス