【发布时间】:2018-05-01 01:37:19
【问题描述】:
我有一个架构
var UserSchema = new mongoose.Schema({
email: {
type: String,
required: true,
trim: true,
minlength: 1,
unique: true,
validate: {
validator: validator.isEmail,
message: "{VALUE} is not a valid email"
}
}
}
如您所见,电子邮件具有“唯一”属性。但是,当我使用相同的电子邮件创建多个用户时,任何地方都不会出现错误。所以,我决定在“PRE”方法中创建一个循环。在我保存新用户之前,它会检查电子邮件是否已存在于 mongo 中,然后将其删除
UserSchema.pre('save', function (next) {
var user = this;
User.find({email: user.email}).then((res) => {
return User.remove({email: res[1].email});
}).then((res) => {
console.log(res);
next()
});
});
但它会删除集合中的每个用户,甚至是之前创建的唯一用户。任何人都可以提供建议或告诉可能的修复方法吗?任何帮助表示赞赏。也许还有另一种检查电子邮件“唯一性”的方法?
【问题讨论】:
标签: javascript node.js mongodb