Mustafa, các ràng buộc duy nhất không được thực thi trong một mảng, mặc dù chúng được thực thi giữa các tài liệu trong một bộ sưu tập. Đây là một lỗi đã biết sẽ không được sửa trong một thời gian:
https://jira.mongodb.org/browse/SERVER-1068
Tuy nhiên, có một cách giải quyết. Giữ chỉ mục duy nhất của bạn tại chỗ và:
1) Đảm bảo ứng dụng của bạn không chèn các tài liệu mới có giá trị trùng lặp trong mảng. Bạn có thể kiểm tra tính duy nhất trong mã ứng dụng của mình trước khi chèn.
2) Khi cập nhật các tài liệu hiện có, hãy sử dụng $ addToSet thay vì $ push.