Brug et indeks med {unique:true}
mulighed.
// everyone's username must be unique:
db.users.createIndex({email:1},{unique:true});
Du kan også gøre dette på tværs af flere felter. Se dette afsnit i dokumenterne for flere detaljer og eksempler.
Et unikt indeks sikrer, at de indekserede felter ikke gemmer duplikerede værdier; dvs. håndhæver unikhed for de indekserede felter. Som standard opretter MongoDB et unikt indeks på _id-feltet under oprettelsen af en samling.
Hvis du ønsker null
værdier, der skal ignoreres fra den unikke nøgle, så skal du også gøre indekset sparsomt (se her ), ved også at tilføje sparse
mulighed:
// 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});
Hvis du vil oprette indekset ved hjælp af MongoDB Java Driver. Prøv:
Document keys = new Document("email", 1);
collection.createIndex(keys, new IndexOptions().unique(true));