Auf der E-Mail-Pfadebene können Sie nur verwenden:
email: {
type: String
}
Und in der Schemaebene verwenden Sie:
SchemaName.index({ email: 1 }, {
unique: true,
partialFilterExpression: {
'email': { $exists: true, $gt: '' }
}
});
Auf diese Weise wird die Eindeutigkeitsbeschränkung nur angewendet, wenn die E-Mail existiert und keine leere Zeichenfolge ist