Hai lý do:
-
Mỗi ObjectId được tạo cục bộ trên máy khách. Các máy khách khác nhau không phối hợp các giá trị mà họ đang tạo ra. Do đó, nó là có thể rằng có hai máy khách tình cờ tạo ra các số ngẫu nhiên giống nhau và do đó sẽ tạo chính xác các ObjectIds giống nhau. Rất khó xảy ra nhưng có thể xảy ra, do đó từ ngữ "có thể là duy nhất".
-
Thuật toán tạo ObjectId chỉ định việc sử dụng bộ đếm 3 byte được sử dụng để phân định các giá trị được tạo trong cùng một giây. Nếu bạn tạo hơn 16 triệu ObjectIds trong cùng một giây, bộ đếm đó sẽ tràn và ứng dụng khách bạn đang sử dụng sẽ bắt đầu tạo ObjectIds mà nó đã được tạo một lúc trước.