Một trong những điều mà tôi thường thấy khi làm việc với các nhà phát triển ứng dụng phụ trợ là nỗi ám ảnh của họ về việc lưu dấu thời gian. Tôi hiểu rằng việc lưu dấu thời gian, đánh dấu quá trình tạo và cập nhật, trở nên không thể tránh khỏi trong một số trường hợp, từ gỡ lỗi và ghi nhật ký, đến sắp xếp các đối tượng hoặc thực thể dựa trên thời gian nó được tạo lần đầu tiên. Tuy nhiên, nếu bạn đang sử dụng MongoDB, bạn không thực sự cần tiết kiệm thời gian tạo một cách rõ ràng Show
Hầu hết các nhà phát triển JavaScript sẽ quen thuộc với MongoDB. Nó thường là cơ sở dữ liệu goto khi bạn làm việc với các nhà phát triển JavaScript/NodeJS. Kiến thức phổ biến nói rằng thuộc tính const mongodb = require('mongodb'); 04 của MongoDB có thể được sử dụng để xác định duy nhất các tài liệu của chúng tôi. Tuy nhiên, thuộc tính const mongodb = require('mongodb'); 04 cũng có thể được sử dụng để lấy thời gian tạo tài liệuconst mongodb = require('mongodb'); 04 có vẻ là một tập hợp các ký tự ngẫu nhiên không hoàn toàn ngẫu nhiên. const mongodb = require('mongodb'); 04 được lưu trữ dưới dạng giá trị có độ dài 12 byte, trong đó 4 byte biểu thị dấu thời gian tạo đối tượng, 5 byte là ký tự ngẫu nhiên và 3 byte còn lại được sử dụng làm bộ đếm được tăng tự động, bắt đầu từ một giá trị ngẫu nhiênDấu thời gian là chủ đề được quan tâm trong bài đăng này. Nó được thể hiện dưới dạng các kỷ nguyên. Có một API tiện dụng cho phép chúng tôi truy cập dấu thời gian này. Chúng ta sẽ thấy điều này trong giây lát Việc phân tách byte thành dấu thời gian, ký tự ngẫu nhiên và bộ đếm tăng tự động khiến MongoDB trở thành lựa chọn phổ biến của những người muốn phát triển hệ thống phân tán. Sự tách biệt này giúp loại bỏ nguy cơ xung đột id cơ sở dữ liệu. Xung đột id cơ sở dữ liệu xảy ra khi có nhiều hàng/tài liệu được đại diện bởi một id. Tương tự, nó giống như hai người có cùng số an sinh xã hội hoặc số liên lạc Nhận thời gian từ một _idĐể lấy dấu thời gian từ thuộc tính const mongodb = require('mongodb'); 04, bước đầu tiên là cài đặt Nút. Có thể tải xuống trình cài đặt Node tại đâyGiả sử bạn đã thiết lập và chạy Node, bạn sẽ cần tải xuống một phụ thuộc có tên là const mongodb = require('mongodb'); 1Gói const mongodb = require('mongodb'); 1 là trình điều khiển MongoDB chính thức và cho phép mã JavaScript của bạn giao tiếp với cơ sở dữ liệu MongoDB. Tuy nhiên, vì hướng dẫn này, bạn sẽ không cần cài đặt MongoDB. Trình điều khiển mongodb sẽ đủ để bao quát phạm vi của bài đăng này. Gói có thể được tìm thấy ở đây và có thể được cài đặt bằng cách sử dụngnpm install mongodb Đăng cài đặt gói, tạo tệp JavaScript. Bắt đầu bằng cách nhập mongodb const mongodb = require('mongodb'); Tiếp theo, chúng tôi lấy ra const mongodb = require('mongodb'); 3 từ mongodb đã nhập. Vui lòng chú ý chữ hoa 'O' và 'ID' trong ObjectIDconst myObject = mongodb.ObjectID; Bây giờ myObject có thể được sử dụng để tạo một thể hiện của id đối tượng bằng cách sử dụng từ khóa mới const object = new myObject(); Cuối cùng, bạn sẽ cần gọi hàm const mongodb = require('mongodb'); 4 trên cá thể đã tạo________số 8Bạn có thể định dạng thêm dấu thời gian theo ý muốn. Chẳng hạn, để hiển thị thời gian ở dạng giờ và phút, let hours = timestamp.getHours() Mã hoàn chỉnh, với cấu trúc đối tượng có thể được tìm thấy bên dưới Nhận dấu thời gian từ GUID của MongoDBCác tài liệu liên quan và cơ sở của bài đăng này có thể được truy cập tại đây. Mặc dù điều này loại bỏ nhu cầu lưu trữ ngày và giờ tạo, nhưng bạn vẫn có thể cần lưu trữ dấu thời gian cập nhật Dữ liệu ngày và giờ thường được quản lý bởi các hệ thống cơ sở dữ liệu và cực kỳ quan trọng, nhưng thường có thể khó xử lý chính xác hơn so với ban đầu. Cơ sở dữ liệu phải có khả năng lưu trữ dữ liệu ngày và giờ ở định dạng rõ ràng, rõ ràng, chuyển đổi dữ liệu đó thành định dạng thân thiện với người dùng để tương tác với ứng dụng khách và thực hiện các hoạt động dựa trên thời gian có tính đến sự phức tạp như múi giờ khác nhau và thay đổi về thời gian tiết kiệm ánh sáng ban ngày Trong hướng dẫn này, chúng ta sẽ thảo luận về một số công cụ mà MongoDB cung cấp để hoạt động hiệu quả với dữ liệu ngày và giờ. Chúng ta sẽ khám phá các loại dữ liệu có liên quan, xem xét các toán tử và phương pháp, đồng thời tìm hiểu cách sử dụng tốt nhất các công cụ này để giữ cho dữ liệu ngày và giờ của bạn ở trạng thái tốt LIÊN QUAN ĐẾN PRISMA. IO Nếu bạn đang sử dụng MongoDB với Prisma, bạn có thể sử dụng trình kết nối MongoDB để kết nối và quản lý cơ sở dữ liệu của mình. Loại const mongodb = require('mongodb'); 07 của Prisma thành loại const mongodb = require('mongodb'); 08 của MongoDBPrisma là bộ công cụ cơ sở dữ liệu mã nguồn mở dành cho Typescript và Node. js nhằm mục đích giúp các nhà phát triển ứng dụng làm việc hiệu quả và tự tin hơn khi làm việc với cơ sở dữ liệu Các loại MongoDB const mongodb = require('mongodb');08 và const mongodb = require('mongodb');30Có thể lưu trữ các giá trị ngày và giờ dưới dạng một đơn vị kết hợp Ở đây, cột bên trái biểu thị tên BSON (JSON nhị phân) cho loại dữ liệu và cột thứ hai biểu thị số ID được liên kết với loại đó. Cột "Bí danh" cuối cùng đại diện cho chuỗi mà MongoDB sử dụng để đại diện cho loại const mongodb = require('mongodb'); 4Loại Ngày BSON là một số nguyên 64-bit đã ký biểu thị số mili giây kể từ kỷ nguyên Unix (ngày 1 tháng 1 năm 1970). Số dương biểu thị thời gian đã trôi qua kể từ kỷ nguyên trong khi số âm biểu thị thời gian di chuyển ngược từ kỷ nguyên Lưu trữ dữ liệu ngày và giờ dưới dạng một số nguyên lớn có lợi vì nó
Vì loại ngày không lưu trữ thông tin bổ sung như múi giờ, ngữ cảnh đó phải được lưu trữ riêng nếu có liên quan. MongoDB sẽ lưu trữ thông tin ngày và giờ bằng UTC trong nội bộ, nhưng có thể dễ dàng chuyển đổi sang các múi giờ khác tại thời điểm truy xuất khi cần MongoDB cũng cung cấp một cái được sử dụng chủ yếu trong nội bộ const mongodb = require('mongodb'); 5Bởi vì điều này chủ yếu được triển khai để giúp điều phối các quy trình nội bộ như sao chép và phân đoạn, có lẽ bạn không nên sử dụng điều này trong logic của ứng dụng của riêng mình. Loại ngày thường có thể đáp ứng mọi yêu cầu về thời gian mà bạn có thể có LIÊN QUAN ĐẾN PRISMA. IO Khi quản lý cơ sở dữ liệu MongoDB bằng Prisma, loại MongoDB const mongodb = require('mongodb'); 08 thành loại const mongodb = require('mongodb'); 07 trong PrismaPrisma là bộ công cụ cơ sở dữ liệu mã nguồn mở dành cho Typescript và Node. js nhằm mục đích giúp các nhà phát triển ứng dụng làm việc hiệu quả và tự tin hơn khi làm việc với cơ sở dữ liệu Cách tạo ngày mớiBạn có thể tạo một đối tượng const mongodb = require('mongodb'); 08 mới theo hai cách khác nhau
Cả hai phương thức const mongodb = require('mongodb'); 36 và const mongodb = require('mongodb'); 38 đều tạo ra một đối tượng const mongodb = require('mongodb'); 08 được gói trong một hàm trợ giúp const mongodb = require('mongodb'); 38Ngoài ra, gọi hàm npm install mongodb 74 mà không có hàm tạo npm install mongodb 75 sẽ trả về ngày và giờ dưới dạng chuỗi thay vì đối tượng const mongodb = require('mongodb'); 08
Điều quan trọng cần lưu ý là sự khác biệt giữa hai loại này vì nó ảnh hưởng đến những hoạt động nào có sẵn, cách thông tin được lưu trữ và mức độ linh hoạt mà nó sẽ mang lại cho bạn. Nói chung, tốt nhất là lưu trữ thông tin ngày tháng bằng cách sử dụng loại const mongodb = require('mongodb'); 08 và sau đó định dạng nó để xuất ra khi cầnChúng ta hãy xem cách nó hoạt động trong phiên shell MongoDB Đầu tiên, chúng ta có thể chuyển sang một cơ sở dữ liệu tạm thời mới và tạo ba tài liệu, mỗi tài liệu có một trường const mongodb = require('mongodb'); 07. Chúng tôi sử dụng một phương pháp khác để điền vào trường const mongodb = require('mongodb'); 07 cho từng đối tượngconst mongodb = require('mongodb'); 0const mongodb = require('mongodb'); 3Theo mặc định, mỗi cơ chế này sẽ lưu trữ ngày giờ hiện tại. Bạn có thể lưu trữ ngày và giờ khác bằng cách thêm chuỗi ngày được định dạng ISO 8601 làm đối số npm install mongodb 7Chúng sẽ tạo một đối tượng const mongodb = require('mongodb'); 08 vào ngày giờ thích hợpMột điều cần lưu ý là việc bao gồm phần cuối của const mongodb = require('mongodb'); 82 trong tài liệu mới đầu tiên ở trên. Điều này cho biết rằng ngày và giờ đang được cung cấp dưới dạng UTC. Chỉ định ngày mà không có const mongodb = require('mongodb'); 82 sẽ khiến MongoDB diễn giải đầu vào liên quan đến giờ địa phương hiện tại (mặc dù nó sẽ luôn chuyển đổi và lưu trữ dưới dạng ngày UTC trong nội bộ)Xác thực loại đối tượng ngàyTiếp theo, chúng ta có thể hiển thị các tài liệu kết quả để xem cách MongoDB lưu trữ dữ liệu ngày tháng const mongodb = require('mongodb'); 8const mongodb = require('mongodb'); 1Theo dự kiến, các trường const mongodb = require('mongodb'); 07 được điền bằng const mongodb = require('mongodb'); 38 và const mongodb = require('mongodb'); 36 chứa các đối tượng const mongodb = require('mongodb'); 08 (được bao bọc trong trình trợ giúp const mongodb = require('mongodb'); 88). Ngược lại, trường được điền bởi lệnh gọi hàm npm install mongodb 74 trần được lưu trữ dưới dạng một chuỗiBạn có thể xác minh rằng trường nào trong số các trường const mongodb = require('mongodb'); 07 có chứa một đối tượng const mongodb = require('mongodb'); 08 thực sự bằng cách gọi một hàm const mongodb = require('mongodb'); 12 trên tập hợp. Bản đồ kiểm tra từng trường const mongodb = require('mongodb'); 07 để xem đối tượng mà nó lưu trữ có phải là một thể hiện của loại const mongodb = require('mongodb'); 08 hay không và hiển thị kết quả trong một trường mới có tên là const mongodb = require('mongodb'); 15. Ngoài ra, chúng tôi sẽ sử dụng phương pháp const mongodb = require('mongodb'); 16 để hiển thị cách mỗi trường const mongodb = require('mongodb'); 07 thực sự được lưu trữ bởi MongoDBconst myObject = mongodb.ObjectID; 6const myObject = mongodb.ObjectID; 7Điều này xác nhận rằng các trường được hiển thị dưới dạng const mongodb = require('mongodb'); 18 là các phiên bản của loại const mongodb = require('mongodb'); 08 trong khi const mongodb = require('mongodb'); 07 được tạo bằng hàm npm install mongodb 74 trần thì khôngNgoài ra, đầu ra ở trên cho thấy các đối tượng được lưu trữ với loại const mongodb = require('mongodb'); 08 được ghi dưới dạng số nguyên có dấu. Như mong đợi, đối tượng ngày được liên kết với ngày từ năm 1852 là âm vì nó đang đếm ngược từ tháng 1 năm 1970Truy vấn đối tượng ngày thángNếu bạn có một bộ sưu tập với các biểu thị ngày tháng hỗn hợp như thế này, bạn có thể truy vấn các trường có loại phù hợp bằng cách sử dụng toán tử const myObject = mongodb.ObjectID; 63Chẳng hạn, để truy vấn tất cả các tài liệu trong đó const mongodb = require('mongodb'); 07 là một đối tượng const mongodb = require('mongodb'); 08, bạn có thể gõconst object = new myObject(); 6const mongodb = require('mongodb'); 50Thay vào đó, để tìm các trường hợp mà trường const mongodb = require('mongodb'); 07 được lưu trữ dưới dạng chuỗi, hãy nhậpconst mongodb = require('mongodb'); 51const mongodb = require('mongodb'); 52Loại const mongodb = require('mongodb'); 08 cho phép bạn thực hiện các truy vấn tìm hiểu mối quan hệ giữa các đơn vị thời gianChẳng hạn, bạn có thể so sánh các đối tượng const mongodb = require('mongodb'); 08 theo thứ tự như bạn làm với các loại khác. Để kiểm tra các ngày trong tương lai, bạn có thể gõconst mongodb = require('mongodb'); 53const mongodb = require('mongodb'); 54Cách sử dụng các phương thức loại const mongodb = require('mongodb');08Bạn có thể thao tác trên các đối tượng const mongodb = require('mongodb'); 08 với nhiều phương thức và toán tử đi kèm. Chẳng hạn, bạn có thể trích xuất các thành phần ngày và giờ khác nhau từ một ngày và in ở nhiều định dạng khác nhauTrình diễn có lẽ là cách nhanh nhất để giới thiệu chức năng này Trước tiên, hãy chọn ngày từ tài liệu có đối tượng ngày const mongodb = require('mongodb'); 55Bây giờ, chúng ta có thể chọn trường const mongodb = require('mongodb'); 07 và trích xuất các thành phần khác nhau từ trường đó bằng cách gọi các phương thức khác nhau trên đối tượngconst mongodb = require('mongodb'); 56____157Ngoài ra còn có các phương pháp đồng hành có thể được sử dụng để đặt thời gian bằng cách cung cấp các thành phần ngày và giờ khác nhau. Ví dụ: bạn có thể thay đổi năm bằng cách gọi phương thức const myObject = mongodb.ObjectID; 72const mongodb = require('mongodb'); 58const mongodb = require('mongodb'); 59Chúng tôi cũng có thể truyền ngày thành các định dạng khác nhau để hiển thị const mongodb = require('mongodb'); 00const mongodb = require('mongodb'); 01Đây là tất cả các phương thức chủ yếu được liên kết với loại const mongodb = require('mongodb'); 08 của JavaScriptCách sử dụng các hàm tổng hợp MongoDB const mongodb = require('mongodb');08MongoDB cung cấp một số chức năng khác cũng có thể thao tác ngày tháng. Một ví dụ hữu ích về điều này là hàm tổng hợp const myObject = mongodb.ObjectID; 75. Bạn có thể chuyển cuộc gọi const myObject = mongodb.ObjectID; 75 với đối tượng const mongodb = require('mongodb'); 08, trình xác định chuỗi định dạng và chỉ báo múi giờ. MongoDB sẽ sử dụng chuỗi định dạng làm mẫu để tìm ra cách xuất đối tượng const mongodb = require('mongodb'); 08 đã cho với múi giờ được sử dụng để bù đầu ra từ UTC một cách chính xácỞ đây, chúng tôi sẽ định dạng ngày trong bộ sưu tập const myObject = mongodb.ObjectID; 79 của mình bằng một chuỗi tùy ý. Chúng tôi cũng sẽ chuyển ngày sang múi giờ New YorkTrước tiên, chúng tôi cần xóa mọi tài liệu thất lạc có thể đã lưu trường const mongodb = require('mongodb'); 07 dưới dạng chuỗiconst mongodb = require('mongodb'); 02Bây giờ chúng ta có thể chạy một tập hợp với hàm const object = new myObject(); 61const mongodb = require('mongodb'); 03const mongodb = require('mongodb'); 04Hàm const object = new myObject(); 62 cũng hữu ích tương tự. Nó có thể được sử dụng để phân tách trường const mongodb = require('mongodb'); 08 thành các phần cấu thành của nóVí dụ, chúng ta có thể gõ const mongodb = require('mongodb'); 05const mongodb = require('mongodb'); 06Có thông tin về các chức năng bổ sung mà bạn có thể sử dụng để thao tác với các đối tượng const mongodb = require('mongodb'); 08 để hiển thị hoặc so sánhPhần kết luậnTrong hướng dẫn này, chúng tôi đã đề cập đến một số cách khác nhau mà bạn có thể làm việc với dữ liệu ngày và giờ trong MongoDB. Hầu hết dữ liệu tạm thời có lẽ nên được lưu trữ trong kiểu dữ liệu const mongodb = require('mongodb'); 08 của MongoDB vì điều này mang lại sự linh hoạt tốt khi thao tác trên dữ liệu hoặc hiển thị dữ liệu đóLàm quen với cách dữ liệu ngày và giờ được lưu trữ nội bộ, cách ép buộc dữ liệu đó thành các định dạng mong muốn trên đầu ra và cách so sánh, sửa đổi và phân tách dữ liệu thành các phần hữu ích có thể giúp bạn giải quyết nhiều vấn đề khác nhau. Mặc dù thông tin ngày tháng có thể khó xử lý, nhưng việc tận dụng các phương pháp và người vận hành có sẵn có thể giúp giảm thiểu một số công việc nặng nhọc LIÊN QUAN ĐẾN PRISMA. IO Nếu bạn đang sử dụng MongoDB, hãy kiểm tra trình kết nối MongoDB của Prisma. Bạn có thể tự tin sử dụng Prisma Client để quản lý cơ sở dữ liệu MongoDB sản xuất Để bắt đầu làm việc với MongoDB và Prisma, hãy xem hướng dẫn bắt đầu từ đầu của chúng tôi hoặc cách thêm vào một dự án hiện có MongoDB có hỗ trợ dấu thời gian không?Nó có hỗ trợ thêm dấu thời gian tự động vào giản đồ ứng dụng của bạn . Nếu khung ứng dụng của bạn không có điều đó, thì việc đảm bảo các trường dấu thời gian được quản lý chính xác là tùy thuộc vào sự nghiêm ngặt của nhà phát triển.
Làm cách nào để đặt dấu thời gian trong lược đồ MongoDB?Cú pháp. Tạo lược đồ với dấu thời gian như sau. const studentSchema = new Schema({ name. Chuỗi }, {dấu thời gian. true }); const Student = cầy mangut.
Làm cách nào để chèn dấu thời gian hiện tại trong MongoDB?Toán tử $currentDate đặt giá trị của một trường thành ngày hiện tại, dưới dạng Ngày hoặc dấu thời gian. Loại mặc định là Ngày. Toán tử $currentDate có dạng. { $currentDate. {
Làm cách nào để lưu ngày tháng trong MongoDB?Bạn có thể chỉ định một ngày cụ thể bằng cách chuyển chuỗi ngày theo tiêu chuẩn ISO-8601 với một năm trong phạm vi bao gồm từ 0 đến 9999 cho hàm tạo Date() mới hoặc hàm ISODate() . Các chức năng này chấp nhận các định dạng sau. new Date(". These functions accept the following formats: new Date(" |