Det er nemt at få tider fra et ObjectId ... dog får du IKKE ms præcision.
org.bson.types.ObjectId har 2 metoder, du kan bruge på den:getTimeSecond() og getTime() (samme som `getTimeSecond() * 1000L ). Disse vil få dit unix-tidsstempel.
Jeg har ikke brugt MongoDB med Spring - men hvis du kan få fingrene i det faktiske ObjectId det er så simpelt som at kalde en af metoderne ovenfor.
Nu - for at forespørge efter dokumenter inden for et tidsinterval skal du gå baglæns og oprette ObjectId objekter baseret på et tidsstempel. Igen - dette er enkelt - ObjectId har en konstruktør kan gøre dette for dig:
ObjectId(Date time)
Så - opret 2 ObjectId forekomster, der repræsenterer dine min. og maks. tidsgrænser, laver derefter en forespørgsel som:
db.collection.find({ "field" : { $gt: value1, $lt: value2 } } );
hvor value1 og value2 repræsentere ObjectId forekomst, du oprettede via ObjectId(Date time)