Es fácil obtener tiempos de un ObjectId ... sin embargo, NO obtienes más precisión.
org.bson.types.ObjectId tiene 2 métodos que puedes usar:getTimeSecond() y getTime() (igual que `getTimeSecond() * 1000L ). Estos obtendrán una marca de tiempo de Unix.
No he usado MongoDB con Spring, pero si puede obtener el ObjectId real instancia es tan simple como llamar a uno de los métodos anteriores.
Ahora, para consultar documentos en un rango de tiempo, debe retroceder y crear ObjectId objetos basados en una marca de tiempo. Nuevamente, esto es simple:el ObjectId tiene un constructor que puede hacer esto por usted:
ObjectId(Date time)
Entonces, cree 2 ObjectId instancias que representan sus límites de tiempo mínimo y máximo, luego haga una consulta como:
db.collection.find({ "field" : { $gt: value1, $lt: value2 } } );
donde value1 y value2 representar el ObjectId instancia que creó a través de ObjectId(Date time)