MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

mongoDB/mongoose:único se não for nulo


A partir do MongoDB v1.8+, você pode obter o comportamento desejado de garantir valores exclusivos, mas permitir vários documentos sem o campo, definindo o sparse opção para true ao definir o índice. Como em:
email : {type: String, trim: true, index: true, unique: true, sparse: true}

Ou na casca:
db.users.ensureIndex({email: 1}, {unique: true, sparse: true});

Observe que um índice único e esparso ainda não permite vários documentos com um email campo com um valor de null , apenas vários documentos sem um email campo.

Consulte http://docs.mongodb.org/manual/core/index-sparse/