Utilizza un indice con il {unique:true}
opzione.
// everyone's username must be unique:
db.users.createIndex({email:1},{unique:true});
Puoi anche farlo su più campi. Vedi questa sezione nei documenti per maggiori dettagli ed esempi.
Un indice univoco garantisce che i campi indicizzati non memorizzino valori duplicati; vale a dire impone l'unicità per i campi indicizzati. Per impostazione predefinita, MongoDB crea un indice univoco sul campo _id durante la creazione di una raccolta.
Se desideri null
valori da ignorare dalla chiave univoca, quindi devi anche rendere l'indice sparso (vedi qui ), aggiungendo anche lo sparse
opzione:
// 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});
Se si desidera creare l'indice utilizzando il driver Java MongoDB. Prova:
Document keys = new Document("email", 1);
collection.createIndex(keys, new IndexOptions().unique(true));