MongoDB v1.8 +以降、sparseを設定することで、一意の値を確保しながら、フィールドなしで複数のドキュメントを許可するという望ましい動作を実現できます。 インデックスを定義するときにtrueに設定するオプション。のように:
email : {type: String, trim: true, index: true, unique: true, sparse: true}
またはシェル内:
db.users.ensureIndex({email: 1}, {unique: true, sparse: true});
一意のまばらなインデックスでは、emailを含む複数のドキュメントを引き続き許可しないことに注意してください。 値のフィールド nullの 、複数のドキュメントのみなし email フィールド。
https://docs.mongodb.org/manual/core/index-sparse/
を参照してください