Лесно е да получите времена от ObjectId ... обаче НЕ получавате ms точност.
org.bson.types.ObjectId има 2 метода, които можете да използвате върху него:getTimeSecond() и getTime() (същото като `getTimeSecond() * 1000L ). Те ще получат вашия unix timestamp.
Не съм използвал MongoDB със Spring - но ако можете да се докопате до действителния ObjectId инстанция е толкова просто, колкото извикването на един от методите по-горе.
Сега – за да търсите документи в даден период от време, трябва да се върнете назад и да създадете ObjectId обекти, базирани на клеймо за време. Отново - това е просто - ObjectId има конструктор, който може да направи това вместо вас:
ObjectId(Date time)
И така - създайте 2 ObjectId екземпляри, които представляват вашите минимални и максимални времеви граници, след това направете заявка като:
db.collection.find({ "field" : { $gt: value1, $lt: value2 } } );
където value1 и value2 представляват ObjectId екземпляр, който сте създали чрез ObjectId(Date time)