MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

mongoDB/mongoose :unique si non nul

À partir de MongoDB v1.8+, vous pouvez obtenir le comportement souhaité en garantissant des valeurs uniques mais en autorisant plusieurs documents sans le champ en définissant le sparse option sur true lors de la définition de l'index. Comme dans :

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

Ou dans le shell :

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

Notez qu'un index unique et clairsemé n'autorise toujours pas plusieurs documents avec un email champ avec une valeur de null , uniquement plusieurs documents sans un email champ.

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