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 https://docs.mongodb.org/manual/core/index-sparse/