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

Vấn đề về độ chính xác thời gian khi so sánh trong trình điều khiển mongodb trong Go và có thể ở ngôn ngữ khác và cơ sở dữ liệu khác

Thời gian trong BSON được biểu thị dưới dạng mili giây UTC kể từ kỷ nguyên Unix ( spec ). Giá trị thời gian trong Go có độ chính xác nano giây.

Đối với thời gian khứ hồi. Giá trị thời gian thông qua BSON marshalling, sử dụng thời gian được cắt ngắn thành mili giây kể từ kỷ nguyên Unix:

func truncate(t time.Time) time.Time {
    return time.Unix(0, t.UnixNano()/1e6*1e6)
}

...

u := user{
    Username:          "test_bson_username",
    Password:          "1234",
    UserAccessibility: "normal",
    RegisterationTime: truncate(time.Now()), 
}

Bạn cũng có thể sử dụng Time.Truncate phương pháp:

u := user{
    Username:          "test_bson_username",
    Password:          "1234",
    UserAccessibility: "normal",
    RegisterationTime:  time.Now().Truncate(time.Millisecond),
}

Cách tiếp cận này dựa trên thực tế là Unix epoch và Go zero time khác nhau một số mili giây.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongo có thể trả lại các tài liệu có các trường trống / thiếu ở cuối theo thứ tự asc không?

  2. Tổng hợp $ tra cứu với C #

  3. Mongo DB:Lấy tất cả các tài liệu được chèn vào sau tài liệu cuối cùng đã biết

  4. Tạo cơ sở dữ liệu trong MongoDB

  5. mongoose findByIdAndDelete / findOneAndRemove không xóa