Het is gemakkelijk om tijden te halen uit een ObjectId
... u krijgt echter GEEN ms-precisie.
org.bson.types.ObjectId
heeft 2 methoden die u erop kunt gebruiken:getTimeSecond()
en getTime()
(zelfde als `getTimeSecond() * 1000L
). Deze krijgen een Unix-tijdstempel.
Ik heb MongoDB niet met Spring gebruikt, maar als je de daadwerkelijke ObjectId
kunt bemachtigen het is zo simpel als het aanroepen van een van de bovenstaande methoden.
Nu - om documenten in een tijdsbestek op te vragen, moet u achteruit gaan en ObjectId
maken objecten op basis van een tijdstempel. Nogmaals - dit is eenvoudig - de ObjectId
heeft een constructor die dit voor u kan doen:
ObjectId(Date time)
Dus - maak 2 ObjectId
instanties die uw minimale en maximale tijdsgrenzen vertegenwoordigen, voer dan een query uit zoals:
db.collection.find({ "field" : { $gt: value1, $lt: value2 } } );
waar value1
en value2
vertegenwoordigen de ObjectId
instantie die u hebt gemaakt via ObjectId(Date time)