Soweit ich weiß, erzwingen eindeutige Indizes nur die Eindeutigkeit über verschiedene Dokumente hinweg, sodass dies einen doppelten Schlüsselfehler auslösen würde:
db.cats.insert( { id: 123, kittens: [ { id: 456 } ] } )
db.cats.insert( { id: 123, kittens: [ { id: 456 } ] } )
Aber das ist erlaubt:
db.cats.insert( { id: 123, kittens: [ { id: 456 }, { id: 456 } ] } )
Ich bin mir nicht sicher, ob es eine Möglichkeit gibt, die Einschränkung, die Sie benötigen, auf Mongo-Ebene durchzusetzen, vielleicht ist es etwas, das Sie in der Anwendungslogik überprüfen könnten, wenn Sie ein Update einfügen?