Mustafa, unikke begrænsninger håndhæves ikke inden for et enkelt array, selvom de håndhæves blandt dokumenter i en samling. Dette er en kendt fejl, som ikke vil blive rettet i et stykke tid:
https://jira.mongodb.org/browse/SERVER-1068
Der er dog en løsning. Hold dit unikke indeks på plads, og:
1) Sørg for, at din applikation ikke indsætter nye dokumenter med duplikerede værdier i arrayet. Du kan kontrollere, om din applikationskode er unik, før du indsætter.
2) Når du opdaterer eksisterende dokumenter, brug $addToSet i stedet for $push.