MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как извличате клеймо за време от MongoDB ObjectId в Spring Data MongoDB?

Лесно е да получите времена от 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)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Предупреждения за оттегляне на MongoDB при използване на Mongoose

  2. Как MongoDB се различава от SQL база данни

  3. Заявка за ограничение/отместване на мангуста и броене

  4. ClusterControl - Разширено управление на архивиране - MongoDB

  5. Mongoose.js:Намерете потребител по потребителско име LIKE value