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

Trình điều khiển Mongodb c # và ISODate

Trong hầu hết các trường hợp, bạn muốn lưu trữ ngày giờ UTC trong cơ sở dữ liệu, vì vậy DateTime của bạn nên được xây dựng như sau:-

DateTest = new DateTime(2013, 10, 13, 0, 0, 0, DateTimeKind.Utc) //this is the date

Với điều này, bài kiểm tra đơn vị được nhận xét đầu tiên của bạn hiện đã vượt qua.

Không chỉ định DateTimeKind bạn đang để nó tùy cơ hội. MongoDB dường như giả định rằng nó cục bộ và chuyển đổi nó thành UTC trong cơ sở dữ liệu.

Cũng lưu ý rằng các giá trị MongoDB DateTime có độ chính xác thấp hơn giá trị .NET DateTime. Nếu bạn muốn lưu trữ các giá trị DateTime tùy ý và lấy lại chúng theo cách mà chúng vẫn khớp thì bạn cần làm tròn chúng đến mili giây gần nhất trước khi lưu trữ.

Nếu bạn thực sự muốn lưu trữ giờ địa phương, tôi khuyên bạn nên chuyển từ DateTime thành DateTimeOffset và tuần tự hóa nó dưới dạng một giá trị Đánh dấu dài cho Ngày giờ UTC và một giá trị cho phần bù.

Lưu ý rằng trừ khi bạn lưu trữ độ lệch được tính tại thời điểm thu được giá trị DateTime thì các phương thức .NET để chuyển đổi thành LocalTime về cơ bản là vô dụng vì chúng không biết thời gian tiết kiệm ánh sáng ban ngày bắt đầu, thậm chí chúng cũng không biết giá trị DateTime đến ở vùng nào từ. Nhìn chung, việc xử lý .NET DateTime để lại rất nhiều điều mong muốn và chứa nhiều phương pháp gây hiểu lầm được cho là có ích nhưng thực sự thì không.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Việc khôi phục có thể vẫn xảy ra trên tập hợp bản sao MongoDB với J =1 và W =Majority không?

  2. Nhập bộ sưu tập mongo vào bộ sưu tập hiện có mà không cần ghi đè nó

  3. tính toán trung bình trong Mongoose

  4. MongoDB trong bộ nhớ để kiểm tra?

  5. Cách thực hiện truy vấn với hoặc điều kiện trong mongoid