Използвайте индекс с {unique:true}
опция.
// everyone's username must be unique:
db.users.createIndex({email:1},{unique:true});
Можете също да направите това в множество полета. Вижте този раздел в документите за повече подробности и примери.
Уникален индекс гарантира, че индексираните полета не съхраняват дублиращи се стойности; т.е. налага уникалност за индексираните полета. По подразбиране MongoDB създава уникален индекс в полето _id по време на създаването на колекция.
Ако желаете null
стойности, които да бъдат игнорирани от уникалния ключ, тогава трябва да направите и индекса рядък (вижте тук ), като добавите и sparse
опция:
// 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});
Ако искате да създадете индекса с помощта на MongoDB Java драйвер. Опитайте:
Document keys = new Document("email", 1);
collection.createIndex(keys, new IndexOptions().unique(true));