У меня есть следующая схема:
const userSchema = new mongoose.Schema({
email: [{
type: String,
trim: true,
}]
})
При сохранении нового пользователя,
const user = new User({
email: ["example@example.com", ""]
//or email: ["example@example.com", null]
})
try{
await user.save()
} catch (e) {
console.log(e)
}
Это сохранит оба этих значения (включая пустую строку и ноль соответственно).
Есть ли способ сохранить только правильное значение электронной почты, отбрасывая пустое или нулевое значение. Вместо этого:
"email" : [
"example@example.com",
""
],
хранить только правильный адрес электронной почты:
"email" : [
"example@example.com",
],
В настоящее время для других полей схемы я использую set. Например, в пользовательской схеме выше
url: {
type: String,
set: deleteEmpty
}
const deleteEmpty = (v) => {
if(!v) {
return undefined
}
return v
}
Это, конечно, не сохранит поле url вообще, если значение будет пустым или пустым. Однако, используя этот метод в поле электронной почты выше, вы получите нулевое значение.
Есть ли способ сохранить только правильное значение электронной почты (например, "example@example.com" в этом случае, игнорируя нулевое или пустое значение.)?