Autant que je sache, les index uniques imposent uniquement l'unicité entre différents documents, ce qui générerait une erreur de clé en double :
db.cats.insert( { id: 123, kittens: [ { id: 456 } ] } )
db.cats.insert( { id: 123, kittens: [ { id: 456 } ] } )
Mais c'est autorisé :
db.cats.insert( { id: 123, kittens: [ { id: 456 }, { id: 456 } ] } )
Je ne sais pas s'il existe un moyen d'appliquer la contrainte dont vous avez besoin au niveau Mongo, c'est peut-être quelque chose que vous pourriez vérifier dans la logique de l'application lorsque vous insérez une mise à jour ?