Use um índice com o
{unique:true}
opção. // everyone's username must be unique:
db.users.createIndex({email:1},{unique:true});
Você também pode fazer isso em vários campos. Veja esta seção nos documentos para obter mais detalhes e exemplos.
Um índice exclusivo garante que os campos indexados não armazenem valores duplicados; ou seja, impõe exclusividade para os campos indexados. Por padrão, o MongoDB cria um índice exclusivo no campo _id durante a criação de uma coleção.
Se você deseja
null
valores a serem ignorados da chave exclusiva, então você também deve tornar o índice esparso (veja aqui ), adicionando também o sparse
opção:// 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 você deseja criar o índice usando o MongoDB Java Driver. Experimentar:
Document keys = new Document("email", 1);
collection.createIndex(keys, new IndexOptions().unique(true));