Per quanto ne so, gli indici univoci impongono solo l'unicità su documenti diversi, quindi ciò genererebbe un errore di chiave duplicata:
db.cats.insert( { id: 123, kittens: [ { id: 456 } ] } )
db.cats.insert( { id: 123, kittens: [ { id: 456 } ] } )
Ma questo è consentito:
db.cats.insert( { id: 123, kittens: [ { id: 456 }, { id: 456 } ] } )
Non sono sicuro che ci sia un modo per imporre il vincolo di cui hai bisogno a livello Mongo, forse è qualcosa che potresti controllare nella logica dell'applicazione quando inserisci l'aggiornamento?