Mustafa, les contraintes uniques ne sont pas appliquées dans un seul tableau, bien qu'elles soient appliquées parmi les documents d'une collection. Il s'agit d'un bug connu qui ne sera pas corrigé avant un certain temps :
https://jira.mongodb.org/browse/SERVER-1068
Il existe cependant une solution de contournement. Gardez votre index unique en place et :
1) Assurez-vous que votre application n'insère pas de nouveaux documents avec des valeurs en double dans le tableau. Vous pouvez vérifier l'unicité de votre code d'application avant de l'insérer.
2) Lors de la mise à jour de documents existants, utilisez $addToSet au lieu de $push.