ObjectId
s dành cho những trường hợp bạn không có khóa duy nhất cho mọi tài liệu trong bộ sưu tập. Chúng là duy nhất, vì vậy bạn không phải lo lắng về xung đột và chúng phân chia hợp lý trong các đợt triển khai lớn mà không cần quá lo lắng (chúng có ưu và nhược điểm, đọc thêm tại đây
).
ObjectId
cũng chứa dấu thời gian của máy khách nơi ObjectId
đã được tạo (trừ khi máy chủ DB được cấu hình để tạo tất cả các khóa). Cùng với đó, như bạn đã nhận thấy, bạn có thể sử dụng tem thời gian để thực hiện một số thao tác ngày tháng. Tuy nhiên, nếu bạn định sử dụng Khung tổng hợp, bạn sẽ thấy rằng bạn không thể sử dụng ObjectId
trong bất kỳ hoạt động ngày nào hiện tại ( sự cố
). Nếu bạn muốn sử dụng AF, bạn sẽ cần trường thứ hai có chứa ngày tháng, rất tiếc là phải lưu trữ kép nó với ObjectId
giá trị bên trong của.
Nếu bạn có thể yên tâm rằng _id
bạn đang tạo là duy nhất, thì không có nhiều lý do để sử dụng ObjectId
trong cấu trúc dữ liệu của bạn.