Người mới bắt đầu sử dụng MongoDB thường khó hiểu khi lưu trữ ngày và giờ. Một số người quyết định sử dụng dấu thời gian NHƯNG có một cách tốt hơn nhiều để lưu trữ ngày và giờ trong MongoDB
Cơ sở dữ liệu không dành cho con người đọc nhưng thật tuyệt khi lưu trữ ở định dạng thuận tiện và ở dạng con người có thể đọc được
Để tôi nói với bạn rằng việc di chuyển cơ sở dữ liệu từ định dạng ngày này sang định dạng ngày khác là một cơn ác mộng. Nếu ứng dụng phức tạp, bạn cũng sẽ gặp những lỗi khó chịu. Vì vậy, điều quan trọng là lập kế hoạch quản lý ngày-giờ một cách hoàn hảo trong ứng dụng của bạn
Tôi đã di chuyển một Nút. js khỏi dấu thời gian và tôi mất khoảng 10 ngày để tìm và sửa lỗi (chủ yếu là chuyển đổi ngày)
Định dạng tốt nhất để lưu trữ ngày và giờ
Định dạng tốt nhất để lưu trữ ngày và giờ trong MongoDB là định dạng ngày và giờ gốc javascript Date() hoặc ISO vì nó chuyển đổi nội bộ nó thành đối tượng Ngày gốc BSON
Các tài liệu MongoDB chính thức nói về
Ngày BSON là một số nguyên 64 bit đại diện cho số mili giây kể từ kỷ nguyên Unix (ngày 1 tháng 1 năm 1970). Điều này dẫn đến một phạm vi ngày có thể biểu thị được khoảng 290 triệu năm trong quá khứ và tương lai
Lúc đầu, định nghĩa có thể trông giống dấu thời gian nhưng Dấu thời gian BSON và Ngày BSON khác nhau
MongoDB chính thức khuyến nghị lưu trữ ngày trong đối tượng Ngày BSON và tránh nếu có thể vì nó được sử dụng nội bộ
Đối tượng ngày MongoDB BSON so với Dấu thời gian
Lúc đầu, định nghĩa đối tượng ngày gốc BSON có thể giống như dấu thời gian. Nhưng chúng khác nhau
Dấu thời gian trong MongoDB chủ yếu dành cho mục đích nội bộ và chúng có giá trị 64 bit
32 bit quan trọng nhất là time_t, tính bằng giây kể từ kỷ nguyên UNIX. 32 bit ít quan trọng nhất là thứ tự tăng dần cho các hoạt động
Đối tượng Ngày BSON mili giây đã trôi qua kể từ ngày 1 tháng 1 năm 1970 (Kỷ nguyên UNIX) với phạm vi ngày là 290 triệu năm trong quá khứ và tương lai
Ví dụ để chèn Ngày trong MongoDB
Trong các trường hợp thực tế, chúng tôi chủ yếu sử dụng MongoDB trong MERN Stack. Nếu đây là trường hợp của bạn thì bạn có thể dễ dàng chèn new Date() vào cơ sở dữ liệu
Đây là cú pháp shell MongoDB để chèn ngày
db.posts.insert({title: "How to Insert Date in MongoDB", time: new Date()})Hoặc chúng ta cũng có thể sử dụng
db.posts.insert({title: "How to Insert Date in MongoDB", time: new ISODate()})Lợi ích của việc sử dụng đối tượng ngày gốc là nó hỗ trợ nhiều phương thức hữu ích để chuyển đổi, rất hữu ích và giảm độ phức tạp
Truy vấn ngày MongoDB trả về ngày dưới dạng chuỗi hoặc đối tượng ngày, truy vấn ngày sẽ trả về ngày hiện tại dưới dạng chuỗi trong vỏ mongo. Ngày MongoDB sẽ trả về ngày hiện tại dưới dạng đối tượng ngày và trình bao mongo sẽ bao bọc đối tượng ngày bằng trình trợ giúp cô lập trong MongoDB. Chúng ta có thể chỉ định ngày cụ thể bằng cách chuyển ngày dưới dạng chuỗi ngày ISO-8601 và chuỗi này được sử dụng với phạm vi từ 0 đến 9999 cho hàm date() mới trong MongoDB
Truy vấn ngày hoạt động như thế nào trong MongoDB?
- Chúng ta có thể sử dụng lệnh date() để lấy ngày ở dạng chuỗi trong truy vấn mà không cần từ khóa new hoặc trình bao MongoDB
- Trong khi tạo một đối tượng ngày mới, chúng ta có thể chỉ định đối tượng ngày như sau
- Truy vấn ngày tháng trong MongoDB sẽ lưu trữ bên trong giá trị số nguyên 64 bit biểu thị số mili giây và UNIX sử dụng nó từ ngày 1 tháng 1 năm 1970
- Đối tượng ngày MongoDB lưu trữ 64 bit, nhưng nó sẽ không lưu trữ tất cả các phiên bản và hoạt động của cơ sở dữ liệu để hỗ trợ 64 bit
- Chúng ta có thể sử dụng ngày dưới dạng chuỗi và chúng ta cũng có thể sử dụng ngày làm phương thức và đối tượng trong MongoDB
- Trong MongoDB, chúng ta có thể chuyển đổi đối tượng ngày thành chuỗi thành định dạng được chỉ định. Có sẵn các toán tử khác nhau cho một ngày thành một chuỗi trong MongoDB
- Có hai cách có sẵn trong MongoDB để lưu trữ ngày giờ là new Date() và new ISODate()
- Ở cách tiếp cận đầu tiên, chúng ta có thể sử dụng đối tượng ngày tháng trong MongoDB như javascript. Đối tượng hoặc phương thức ngày là phương pháp tốt nhất để lưu trữ ngày hoặc giờ trong MongoDB
- Trong cách tiếp cận thứ hai, chúng ta có thể sử dụng phương thức ISODate để lưu trữ ngày hoặc giờ trong MongoDB
- MongoDB không hỗ trợ ngày không có định dạng múi giờ. Cách khác để lưu trữ ngày không có múi giờ là sử dụng hai loại biểu diễn nhật ký
- First is millisecond and second is (). These are the ways that are available in MongoDB to store the date without time zone in MongoDB.
- Chúng tôi đã sử dụng chức năng ISODate trong MongoDB;
- ISODate trong MongoDB cung cấp một cách thuận tiện để biểu thị ngày trong MongoDB
- Định dạng ngày chuỗi được sử dụng để lưu trữ chuỗi ở định dạng ngày. Điều này được sử dụng để lưu trữ ngày dưới dạng một chuỗi đơn giản ở định dạng con người có thể đọc được
- Trong khi lưu trữ ngày ở định dạng chuỗi, nó rất dễ hiển thị, trong khi lưu trữ ngày ở định dạng chuỗi, không cần phải xử lý bằng cách sử dụng cùng một
- Ngoài ra, trong khi lưu trữ ngày ở định dạng chuỗi, có thể dễ dàng chuyển đổi nó sang bất kỳ nền tảng hoặc định dạng nào khác. Nhưng thật khó để xác định định dạng ngày trong khi lưu trữ nó ở định dạng chuỗi
Định dạng ngày khác nhau trong MongoDB
Đưa ra bên dưới là định dạng ngày và mỗi định dạng trả về một phiên bản ISODate kết quả
- new Date ()
- new Date ()
- new Date ()
- new Date(“”)
1. new Date ()
- Một phần nghìn giây là một số nguyên và nó chỉ định số phần nghìn giây. Milliseconds xác định giá trị số nguyên được sử dụng định dạng ngày trong MongoDB
- Mili giây sẽ chuyển đổi ngày thành định dạng ngày tiêu chuẩn
- Ví dụ dưới đây cho thấy chuyển đổi mili giây thành định dạng ngày. Trong ví dụ dưới đây, chúng tôi đã hiển thị hai ví dụ. Trong ví dụ đầu tiên, chúng tôi đã sử dụng đầu ra 1234567890 mili giây của mili giây này là 1970-01-15 và trong ví dụ thứ hai, chúng tôi đã sử dụng đầu ra 0987654321 mili giây của mili giây này là 1970-01-12
Ví dụ
Mã số
Bắt đầu khóa học khoa học dữ liệu miễn phí của bạn
Hadoop, Khoa học dữ liệu, Thống kê và những thứ khác
new Date(1234567890)
new Date(0987654321)
Gói khoa học dữ liệu tất cả trong một(360+ khóa học, hơn 50 dự án)
Giá
Xem các khóa học
Hơn 360 khóa học trực tuyến. hơn 50 dự án. Hơn 1500 giờ. Giấy chứng nhận có thể kiểm chứng. Truy cập trọn đời
4. 7 (86.584 xếp hạng)
đầu ra
2. new Date ()
- Định dạng này xác định năm, tháng và ngày ở định dạng đầy đủ, nó cũng sẽ hiển thị giờ, phút và giây ở định dạng đầy đủ
- Trong ví dụ dưới đây, chúng tôi đã sử dụng ngày là (“2020-05-15T12. 05. 45”), và đầu ra của việc sử dụng ngày này là (“2020-05-15T06. 35. 45Z”)
Ví dụ
Mã số
new Date("2020-05-15T12:05:45")
đầu ra
3. new Date ()
- Định dạng này được định nghĩa là năm, tháng và ngày ở định dạng đầy đủ
- Trong ví dụ bên dưới, chúng tôi đã sử dụng ngày là (“2020-05-15”) và kết quả của việc sử dụng ngày này là (“2020-05-15T00. 00. 00Z”)
Ví dụ
Mã số
new Date("2020-05-15")
đầu ra
4. new Date(“”)
- Định dạng này xác định năm, tháng và ngày ở định dạng đầy đủ, nó cũng hiển thị giờ, phút và giây ở định dạng đầy đủ
- Trong ví dụ dưới đây, chúng tôi đã sử dụng ngày là (“2020-05-15T12. 05. 45Z”), và đầu ra của việc sử dụng ngày này là (“2020-05-15T06. 35. 45Z”)
Ví dụ
Mã số
new Date("2020-05-15T12:05:45Z")
đầu ra
Ví dụ về truy vấn ngày MongoDB
Dưới đây là các ví dụ về MongoDB Date Query
Ví dụ 1
Để lưu trữ ngày bằng định dạng Date() mới trong MongoDB
Trong ví dụ dưới đây, chúng tôi đã sử dụng đối tượng Date() mới trong MongoDB. Chúng tôi đã sử dụng bộ sưu tập thử nghiệm trong khi sử dụng đối tượng ngày tháng trong MongoDB
Mã số
________số 8_______
đầu ra
Ví dụ #2
Để lưu trữ ngày bằng định dạng ISODate() mới trong MongoDB
Trong ví dụ dưới đây, chúng tôi đã sử dụng đối tượng ISODate() mới trong MongoDB. Chúng tôi đã sử dụng bộ sưu tập test1 trong khi sử dụng đối tượng ngày tháng trong MongoDB
Mã số
db.test1.insertOne ({"Id":"1","Date":new ISODate()});
db.test1.find ()
đầu ra
Ví dụ #3
Sử dụng phương thức Date() trong MongoDB
Trong ví dụ dưới đây, chúng tôi đã sử dụng hàm ngày
Mã số
Date ()
đầu ra
Ví dụ #4
Sử dụng một phương thức Date() mới trong MongoDB
Trong ví dụ dưới đây, chúng tôi đã sử dụng hàm ngày
Mã số
new Date ()
đầu ra
Phần kết luận
Truy vấn ngày được sử dụng để trả về ngày dưới dạng truy vấn hoặc chuỗi. Về cơ bản, có hai cách để lưu trữ ngày, tôi. e. ngày () và ISODate (). Định dạng ngày chuỗi được sử dụng để lưu trữ chuỗi ở định dạng ngày trong khi lưu trữ ngày ở định dạng chuỗi, nó rất dễ hiển thị
Bài viết được đề xuất
Đây là hướng dẫn về MongoDB Date Query. Ở đây chúng ta thảo luận về phần giới thiệu của MongoDB Date Query, truy vấn ngày hoạt động như thế nào với các định dạng ngày khác nhau trong MongoDB và các ví dụ. Bạn cũng có thể xem các bài viết sau để tìm hiểu thêm –