Från och med MongoDB v1.8+ kan du få önskat beteende för att säkerställa unika värden men tillåta flera dokument utan fältet genom att ställa in sparse
alternativet till sant när indexet definieras. Som i:
email : {type: String, trim: true, index: true, unique: true, sparse: true}
Eller i skalet:
db.users.ensureIndex({email: 1}, {unique: true, sparse: true});
Observera att ett unikt, glest index fortfarande inte tillåter flera dokument med en email
fält med ett värde av null
, bara flera dokument utan ett email
fältet.
Se http://docs.mongodb.org/manual/core/index-sparse/