Det är lätt att få tider från ett ObjectId ... men du får INTE ms precision.
org.bson.types.ObjectId har 2 metoder som du kan använda på den:getTimeSecond() och getTime() (samma som `getTimeSecond() * 1000L ). Dessa kommer att få din unix-tidsstämpel.
Jag har inte använt MongoDB med Spring - men om du kan få tag på det faktiska ObjectId det är så enkelt som att anropa en av metoderna ovan.
Nu - för att söka efter dokument inom ett tidsintervall måste du gå bakåt och skapa ObjectId objekt baserat på en tidsstämpel. Återigen - det här är enkelt - ObjectId har en konstruktör kan göra detta åt dig:
ObjectId(Date time)
Så - skapa 2 ObjectId instanser som representerar dina min- och maxtidsgränser gör sedan en fråga som:
db.collection.find({ "field" : { $gt: value1, $lt: value2 } } );
där value1 och value2 representerar ObjectId instans du skapade via ObjectId(Date time)