Theo như tôi biết, các chỉ mục duy nhất chỉ thực thi tính duy nhất trên các tài liệu khác nhau, vì vậy điều này sẽ gây ra lỗi khóa trùng lặp:
db.cats.insert( { id: 123, kittens: [ { id: 456 } ] } )
db.cats.insert( { id: 123, kittens: [ { id: 456 } ] } )
Nhưng điều này được cho phép:
db.cats.insert( { id: 123, kittens: [ { id: 456 }, { id: 456 } ] } )
Tôi không chắc liệu có cách nào thực thi ràng buộc bạn cần ở cấp Mongo hay không, có thể đó là thứ bạn có thể kiểm tra trong logic ứng dụng khi chèn bản cập nhật?