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)