sql >> Database >  >> NoSQL >> MongoDB

Hoe extraheer je een tijdstempel uit een MongoDB ObjectId in Spring Data MongoDB?

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)



  1. 2 manieren om een ​​index zichtbaar te maken in MongoDB

  2. Hoe sorteer ik een verzameling op basis van waarden in een array

  3. gooi nieuwe mangoest.Error.MissingSchemaError(naam); ^ MongooseError:Schema is niet geregistreerd voor modelhandelaar

  4. MongoDB op EC2-server of AWS SimpleDB?