MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment garantir un élément unique dans un tableau basé sur des champs spécifiques - mongoDB ?

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.