En el nivel de ruta de correo electrónico, solo puede usar:
email: {
type: String
}
Y en el uso de nivel de esquema:
SchemaName.index({ email: 1 }, {
unique: true,
partialFilterExpression: {
'email': { $exists: true, $gt: '' }
}
});
De esta manera, la restricción única se aplica solo si el correo electrónico existe y no es una cadena vacía