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

mongoDB. đọc, tìm kiếm dấu thời gian dựa trên oplog

Timestamp các giá trị bạn thấy trong oplog là loại MongoDB BSON nội bộ. Đối số đầu tiên es trong biểu diễn dưới dạng hàm Timestamp(es, ord) là một time_t giá trị của giây kể từ kỷ nguyên Unix. Thứ hai là thứ tự sắp xếp các dấu thời gian trong vòng một giây. Bạn sẽ có thể truy vấn Timestamp bình thường với $gt , $lt , v.v.:

> db.ts.find()
{ "_id" : ObjectId("53eb914ff9b63e0dd3ca1a20"), "ts" : Timestamp(1406185666, 1) }
{ "_id" : ObjectId("53eb915cf9b63e0dd3ca1a21"), "ts" : Timestamp(1405914581, 1) }
{ "_id" : ObjectId("53eb917cf9b63e0dd3ca1a22"), "ts" : Timestamp(1406185666, 2) }

> db.ts.find({ "ts" : { "$gte" : Timestamp(1406185630, 1) } })
{ "_id" : ObjectId("53eb914ff9b63e0dd3ca1a20"), "ts" : Timestamp(1406185666, 1) }
{ "_id" : ObjectId("53eb917cf9b63e0dd3ca1a22"), "ts" : Timestamp(1406185666, 2) }

> db.ts.find({ "ts" : { "$gt" : Timestamp(1406185666, 1) } })
{ "_id" : ObjectId("53eb917cf9b63e0dd3ca1a22"), "ts" : Timestamp(1406185666, 2) }

Để trả lời các câu hỏi cụ thể của bạn (trong mongo shell),

> var SECS_PER_HOUR = 3600
> var now = Math.floor((new Date().getTime()) / 1000) // seconds since epoch right now
> db.oplog.rs.find({ "ts" : { "$lt" : Timestamp(now, 1), "$gt" : Timestamp(now - SECS_PER_HOUR, 1) } })

Bạn không chỉ định múi giờ - hãy nhớ cẩn thận về điều đó và đưa ra lựa chọn phù hợp.

> var since = Math.floor(ISODate("2014-08-12T09:00:00.000Z").getTime() / 1000)
> var until = Math.floor(ISODate("2014-08-12T15:00:00.000Z").getTime() / 1000)
> db.oplog.rs.find({ "ts" : { "$lt" : Timestamp(until, 1), "$gt" : Timestamp(since, 1) } })



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Chính xác thì ngoại lệ NullPointer ở đâu?

  2. mongoexport E QUERY Cú pháp Lỗi:Số nhận dạng không mong muốn

  3. Truy vấn cho một ngày cụ thể với MongoDB và NodeJS

  4. MongoDB thêm các trường mới có tên với giá trị biến

  5. Cách sử dụng tổng hợp kết nối MongoDB trên AWS Lambda