Sangat mudah untuk mendapatkan waktu dari ObjectId ... namun Anda TIDAK mendapatkan presisi ms.
org.bson.types.ObjectId memiliki 2 metode yang dapat Anda gunakan:getTimeSecond() dan getTime() (sama seperti `getTimeSecond() * 1000L ). Ini akan mendapatkan stempel waktu unix Anda.
Saya belum pernah menggunakan MongoDB dengan Spring - tetapi jika Anda bisa mendapatkan ObjectId yang sebenarnya contoh yang sederhana seperti memanggil salah satu metode di atas.
Sekarang - untuk meminta dokumen dalam rentang waktu, Anda harus mundur dan membuat ObjectId objek berdasarkan timestamp. Sekali lagi - ini sederhana - ObjectId memiliki konstruktor dapat melakukan ini untuk Anda:
ObjectId(Date time)
Jadi - buat 2 ObjectId instance yang mewakili batas waktu minimum dan maksimum Anda, lalu lakukan kueri seperti:
db.collection.find({ "field" : { $gt: value1, $lt: value2 } } );
di mana value1 dan value2 mewakili ObjectId contoh yang Anda buat melalui ObjectId(Date time)