Mongoose 在 4.0 版本之前,验证器不支持update()
、findByIDAndUpdate()
、findOneAndUpdate()
, 但可以支持实例方法 document.save()
。所以可以先找到该条数据,然后调用save()
方法来实现:
Model.findOne({_id: modelId}, (err, model) => {
model.name = 'newName'
model.save((err, savedModel) => {
// ERROR HANDLER
})
})
Mongoose 4.0 之后,可以在update()
方法中通过设置runValidators
字段的值为 true
来触发验证器:
Model.update(
{ _id: modelId },
{ $set: { name: 'newName' } },
{
upsert: true,
runValidators: true
},
err => {
// ERROR HANDLER
}
)