我在保存用户记录时调用了一个mongoose验证器,以确保电子邮件是唯一的。这个"独特"检查实际上是由一个mongoose验证器插件处理的。
调用User.save
时,它可以正常工作 - 但是当使用User.findOneAndUpdate
调用{ runValidators: true }
时,验证程序会失败,因为this
未定义:
function (value, respond) {
var model = this.model(this.constructor.modelName);
}
我猜测mongoose以不同方式调用验证器 - 以this
更改的方式。
有更好/更安全的方法来确定/参考当前模型吗?我没有在this
上看到任何可行的属性。