Mustafa, unika begränsningar upprätthålls inte inom en enda array, även om de upprätthålls bland dokument i en samling. Detta är en känd bugg som inte kommer att fixas på ett tag:
https://jira.mongodb.org/browse/SERVER-1068
Det finns dock en lösning. Håll ditt unika index på plats och:
1) Se till att ditt program inte infogar nya dokument med dubbletter av värden i arrayen. Du kan kontrollera att din applikationskod är unik innan du infogar.
2) När du uppdaterar befintliga dokument använd $addToSet istället för $push.