Utilisez un index avec le {unique:true}
option.
// everyone's username must be unique:
db.users.createIndex({email:1},{unique:true});
Vous pouvez également le faire sur plusieurs champs. Voir cette rubrique dans la documentation pour plus de détails et d'exemples.
Un index unique garantit que les champs indexés ne stockent pas de valeurs en double ; c'est-à-dire applique l'unicité pour les champs indexés. Par défaut, MongoDB crée un index unique sur le champ _id lors de la création d'une collection.
Si vous souhaitez null
valeurs à ignorer de la clé unique, alors vous devez également rendre l'index clairsemé (voir ici ), en ajoutant également le sparse
choix :
// everyone's username must be unique,
//but there can be multiple users with no email field or a null email:
db.users.createIndex({email:1},{unique:true, sparse:true});
Si vous souhaitez créer l'index à l'aide du pilote Java MongoDB. Essayez :
Document keys = new Document("email", 1);
collection.createIndex(keys, new IndexOptions().unique(true));