Đây thực sự không phải là vấn đề với trình điều khiển Perl .. nó liên quan đến các đặc điểm của sharding. MongoDB chỉ có thể thực thi tính duy nhất giữa các tài liệu nằm trên một phân đoạn duy nhất tại thời điểm tạo, vì vậy chỉ mục mặc định không yêu cầu tính duy nhất.
Trong MongoDB:Định cấu hình Sharding tài liệu có đề cập cụ thể rằng:
-
Khi bạn phân đoạn một bộ sưu tập, bạn phải chỉ định khóa phân đoạn. Nếu có dữ liệu trong bộ sưu tập, mongo sẽ yêu cầu một chỉ mục được tạo trước (nó tăng tốc quá trình phân khúc); nếu không, một chỉ mục sẽ được tạo tự động cho bạn.
-
Bạn có thể sử dụng tùy chọn {unique:true} để đảm bảo rằng chỉ mục cơ bản thực thi tính duy nhất miễn là chỉ mục duy nhất là tiền tố của khóa phân đoạn.
-
Nếu tùy chọn "duy nhất:đúng" không được sử dụng, khóa phân đoạn không nhất thiết phải là duy nhất.