Na poziomie ścieżki e-mail możesz używać tylko:
email: {
type: String
}
A na poziomie schematu użyj:
SchemaName.index({ email: 1 }, {
unique: true,
partialFilterExpression: {
'email': { $exists: true, $gt: '' }
}
});
W ten sposób ograniczenie unikatowości jest stosowane tylko wtedy, gdy e-mail istnieje i nie jest pustym ciągiem