Es ist einfach, Zeiten aus einer ObjectId zu bekommen ... allerdings bekommt man KEINE MS-Präzision.
org.bson.types.ObjectId hat 2 Methoden, die Sie darauf verwenden können:getTimeSecond() und getTime() (dasselbe wie `getTimeSecond() * 1000L ). Diese erhalten einen Unix-Zeitstempel.
Ich habe MongoDB nicht mit Spring verwendet - aber wenn Sie die tatsächliche ObjectId in die Hände bekommen können Instanz ist es so einfach wie das Aufrufen einer der oben genannten Methoden.
Nun - um Dokumente in einem Zeitbereich abzufragen, müssen Sie zurückgehen und ObjectId erstellen Objekte basierend auf einem Zeitstempel. Auch hier - das ist ganz einfach - die ObjectId hat einen Konstruktor, der das für Sie erledigen kann:
ObjectId(Date time)
Also - erstellen Sie 2 ObjectId Instanzen, die Ihre minimalen und maximalen Zeitgrenzen darstellen, führen Sie dann eine Abfrage wie die folgende durch:
db.collection.find({ "field" : { $gt: value1, $lt: value2 } } );
wobei value1 und value2 repräsentieren die ObjectId Instanz, die Sie über ObjectId(Date time) erstellt haben