Łatwo jest uzyskać czasy z ObjectId ... jednak NIE dostajesz precyzji stwardnienia rozsianego.
org.bson.types.ObjectId ma 2 metody, których możesz na nim użyć:getTimeSecond() i getTime() (tak samo jak `getTimeSecond() * 1000L ). Spowoduje to uzyskanie uniksowego znacznika czasu.
Nie używałem MongoDB ze Springiem - ale jeśli możesz zdobyć rzeczywisty ObjectId przykład jest tak proste, jak wywołanie jednej z powyższych metod.
Teraz - aby wyszukać dokumenty w przedziale czasowym, musisz cofnąć się i utworzyć ObjectId obiekty na podstawie znacznika czasu. Znowu – to jest proste – ObjectId ma konstruktor, który może to zrobić za Ciebie:
ObjectId(Date time)
Więc - utwórz 2 ObjectId instancje, które reprezentują Twoje minimalne i maksymalne granice czasu, wykonają zapytanie takie jak:
db.collection.find({ "field" : { $gt: value1, $lt: value2 } } );
gdzie value1 i value2 reprezentują ObjectId instancja utworzona przez ObjectId(Date time)