MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak wyodrębnić znacznik czasu z obiektu MongoDB ObjectId w Spring Data MongoDB?

Ł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)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Dlaczego Mongoose dodaje puste tablice?

  2. Trwałe połączenie lub pula połączeń w PHP54+ Nginx + PHPFPM + MongoDB

  3. Najszybszy sposób na usunięcie duplikatów dokumentów w mongodb

  4. Deserializacja MongoDB BSON

  5. Jak zaktualizować _id jednego dokumentu MongoDB?