MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

mongoDB/mongoose:eindeutig, wenn nicht null

Ab MongoDB v1.8+ können Sie das gewünschte Verhalten erzielen, eindeutige Werte sicherzustellen, aber mehrere Dokumente ohne das Feld zuzulassen, indem Sie sparse festlegen Option auf true setzen, wenn der Index definiert wird. Wie in:

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

Oder in der Shell:

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

Beachten Sie, dass ein eindeutiger, dünnbesetzter Index immer noch nicht mehrere Dokumente mit einer email zulässt Feld mit einem Wert von null , nur mehrere Dokumente ohne eine email Feld.

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