Mustafa、一意の制約は、コレクション内のドキュメント間で適用されますが、単一の配列内では適用されません。これは既知のバグであり、しばらくは修正されません:
https://jira.mongodb.org/browse/SERVER-1068
ただし、回避策があります。独自のインデックスを適切に維持し、次のことを行います。
1)アプリケーションが配列に重複する値を持つ新しいドキュメントを挿入しないことを確認します。挿入する前に、アプリケーションコードの一意性を確認できます。
2)既存のドキュメントを更新するときは、$pushの代わりに$addToSetを使用します。