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)