Użyj indeksu z {unique:true}
opcja.
// everyone's username must be unique:
db.users.createIndex({email:1},{unique:true});
Możesz to zrobić również w wielu polach. Zobacz tę sekcję w dokumentacji, aby uzyskać więcej szczegółów i przykładów.
Unikalny indeks zapewnia, że indeksowane pola nie przechowują zduplikowanych wartości; czyli wymusza unikalność indeksowanych pól. Domyślnie MongoDB tworzy unikalny indeks w polu _id podczas tworzenia kolekcji.
Jeśli chcesz null
wartości, które mają być zignorowane z unikalnego klucza, musisz również rozrzedzić indeks (zobacz tutaj ), dodając także sparse
opcja:
// 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});
Jeśli chcesz utworzyć indeks za pomocą sterownika Java MongoDB. Wypróbuj:
Document keys = new Document("email", 1);
collection.createIndex(keys, new IndexOptions().unique(true));