Nếu bạn không quan tâm đến hỗ trợ múi giờ trong ứng dụng của mình, thì việc sử dụng chuỗi cho các truy vấn cơ bản trong MongoDB sẽ hoạt động tốt (nhưng nếu điều đó quan trọng, bạn sẽ muốn có một Date
thực sự loại).
Tuy nhiên, nếu sau này bạn muốn tính toán ngày tháng hoặc sử dụng Khung tổng hợp với trường ngày tháng của mình, thì trường đó thực sự là một Date
loại:
http://docs.mongodb.org/manual/reference/aggregation/ # toán tử ngày
Ví dụ:bạn có thể sử dụng $dayOfWeek
chức năng trên Date
trường đã nhập.
Bạn có thể thực hiện một số việc đơn giản như nhóm vào năm bằng cách sử dụng $substr
( doc
) trong MongoDB, nhưng mã kết quả sẽ không rõ ràng (cũng không có khả năng hoạt động tốt).
Mặc dù đó không phải là sự khác biệt lớn, nhưng tôi khuyên bạn nên lưu trữ chúng dưới dạng Date
nói chung là các loại nếu có thể.
Tôi thấy trong tài liệu
cho trình điều khiển Perl mà các nhà phát triển được cảnh báo không sử dụng DateTime
do thực tế là nó rất chậm, vì vậy có thể nếu bạn sử dụng Perl thường xuyên và Khung tổng hợp không phải là vấn đề lớn, tốt hơn hết bạn nên lưu trữ chúng dưới dạng số hoặc dưới dạng chuỗi và chuyển đổi chúng khi cần thiết trong Perl.
Nếu không gian là một vấn đề, hãy xóa các ký tự không cần thiết (chẳng hạn như -
):
20130613 ->
4 bytes for length of string
8 bytes encoded as UTF-8
NULL character
Đó sẽ là 13 ký tự. Giá trị DateTime trong BSON
Mặt khác / MongoDB yêu cầu 8 byte (như Perl $time
chức năng).
(Tôi thực sự khuyên bạn nên thực hiện một chút kiểm tra hiệu suất để tìm hiểu xem tác động hiệu suất của việc sử dụng Date
nhập MongoDB bằng Perl sẽ ảnh hưởng đến quy trình công việc điển hình của bạn.)