MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment extraire un horodatage d'un ObjectId MongoDB dans Spring Data MongoDB ?

Il est facile d'obtenir des temps à partir d'un ObjectId ... mais vous n'obtenez PAS la précision ms.

org.bson.types.ObjectId a 2 méthodes que vous pouvez utiliser :getTimeSecond() et getTime() (identique à `getTimeSecond() * 1000L ). Ceux-ci obtiendront votre horodatage unix.

Je n'ai pas utilisé MongoDB avec Spring - mais si vous pouvez mettre la main sur le réel ObjectId instance c'est aussi simple que d'appeler l'une des méthodes ci-dessus.

Maintenant - pour rechercher des documents dans une plage de temps, vous devez revenir en arrière et créer ObjectId objets basés sur un horodatage. Encore une fois - c'est simple - le ObjectId un constructeur peut le faire pour vous :

ObjectId(Date time)

Donc - créez 2 ObjectId les instances qui représentent vos limites de temps min et max, puis faites une requête comme :

db.collection.find({ "field" : { $gt: value1, $lt: value2 } } );

value1 et value2 représentent l'ObjectId instance que vous avez créée via ObjectId(Date time)