Mustafa, unikatowe ograniczenia nie są wymuszane w ramach jednej tablicy, chociaż są one wymuszane między dokumentami w kolekcji. To znany błąd, który nie zostanie naprawiony przez jakiś czas:
https://jira.mongodb.org/browse/SERVER-1068
Istnieje jednak obejście. Utrzymuj swój unikalny indeks na miejscu i:
1) Upewnij się, że aplikacja nie wstawia do tablicy nowych dokumentów ze zduplikowanymi wartościami. Możesz sprawdzić unikalność kodu aplikacji przed wstawieniem.
2) Podczas aktualizacji istniejących dokumentów użyj $addToSet zamiast $push.