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/