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

Cách tốt nhất để lưu trữ ngày tháng trong MongoDB là gì?

Tôi thực sự đang trong quá trình chuyển đổi cơ sở dữ liệu MongoDB trong đó ngày tháng được lưu trữ dưới dạng các loại Date () thích hợp để thay vào đó lưu trữ chúng dưới dạng chuỗi ở dạng yyyy-mm-dd . Tại sao, khi mọi người trả lời khác đều nói rằng đây là một ý tưởng kinh khủng? Nói một cách đơn giản, vì nỗi đau đang cận kề mà tôi đang phải chịu khi cố gắng làm việc với ngày tháng trong JavaScript, vốn không có khái niệm (thực) về múi giờ. Tôi đã lưu trữ ngày UTC trong MongoDB, tức là đối tượng Date () với ngày mong muốn của tôi và thời gian được đặt là nửa đêm UTC, nhưng việc lấy ngày do người dùng gửi được chuyển đổi chính xác thành ngày đó từ bất kỳ múi giờ nào mà họ tình cờ. Tôi đã cố gắng làm cho mã JavaScript "bất kể múi giờ địa phương nào thành UTC" hoạt động (và vâng, tôi biết Sugar.js và Moment.js) và tôi đã quyết định rằng các chuỗi đơn giản như tiêu chuẩn MySQL cũ tốt yyyy-mm-dd là cách để bắt đầu và tôi sẽ phân tích cú pháp thành các đối tượng Date () nếu cần trong thời gian chạy ở phía máy khách.

Ngẫu nhiên, tôi cũng đang cố gắng đồng bộ hóa cơ sở dữ liệu MongoDB này với cơ sở dữ liệu FileMaker, cơ sở dữ liệu này cũng không có khái niệm về múi giờ. Đối với tôi, sự đơn giản của đơn giản là không lưu trữ dữ liệu thời gian, đặc biệt khi nó vô nghĩa như nửa đêm UTC, giúp đảm bảo mã ít lỗi hơn ngay cả khi tôi phải phân tích cú pháp đến và từ chuỗi ngày bây giờ và sau đó.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Liên kết &Tạo MongoDB tham gia bằng SQL:Phần 2

  2. Mongoose chỉ mục duy nhất trên subocument

  3. Các đối tượng lồng nhau trong lược đồ mongoose

  4. Lệnh MongoDB dropIndexes

  5. Thứ tự trường MongoDB và vị trí tài liệu thay đổi sau khi cập nhật