MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

mongoDB/mongoose:unico se non nullo

A partire da MongoDB v1.8+ puoi ottenere il comportamento desiderato garantendo valori univoci ma consentendo più documenti senza il campo impostando sparse opzione su true quando si definisce l'indice. Come in:

email : {type: String, trim: true, index: true, unique: true, sparse: true}

O nella shell:

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

Tieni presente che un indice univoco e sparso non consente ancora più documenti con un email campo con un valore di null , solo più documenti senza un email campo.

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