MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Làm cách nào để trích xuất dấu thời gian từ MongoDB ObjectId trong Spring Data MongoDB?

Thật dễ dàng để lấy thời gian từ một ObjectId ... tuy nhiên bạn KHÔNG nhận được độ chính xác ms.

org.bson.types.ObjectId có 2 phương thức bạn có thể sử dụng trên đó:getTimeSecond()getTime() (giống như `getTimeSecond() * 1000L ). Những điều này sẽ nhận được một dấu thời gian unix của bạn.

Tôi chưa sử dụng MongoDB với Spring - nhưng nếu bạn có thể sử dụng ObjectId thực tế ví dụ của nó đơn giản như gọi một trong các phương thức ở trên.

Bây giờ - để truy vấn tài liệu trong một phạm vi thời gian, bạn phải quay ngược lại và tạo ObjectId các đối tượng dựa trên dấu thời gian. Một lần nữa - điều này thật đơn giản - ObjectId có một hàm tạo có thể làm điều này cho bạn:

ObjectId(Date time)

Vì vậy - hãy tạo 2 ObjectId các trường hợp đại diện cho giới hạn thời gian tối thiểu và tối đa của bạn, sau đó thực hiện một truy vấn như:

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

trong đó value1value2 đại diện cho ObjectId ví dụ bạn đã tạo qua ObjectId(Date time)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm thế nào để thay đổi địa chỉ IP của đêm giao thừa?

  2. Làm thế nào để nhận được 5 tài liệu cuối cùng theo thứ tự tuần tự?

  3. Cosmos DB Mongo API Cách quản lý Tỷ lệ Yêu cầu là Điều kiện lớn

  4. Phím mài (MongoDB) cho các tài liệu số lượng lớn

  5. Trong Mongo sự khác biệt giữa sharding và replication là gì?