我有类似的东西
UserSchema.pre('save', function(next) {
console.log(this.isModified());
next();
});
输出总是true
,阅读文档说明:
如果修改了此文档,则返回true,否则返回false。
当函数返回false
时,我找不到一个案例。
更新
这就是我调用save
函数
let user = new User;
user.email = req.body.email;
user.displayName = req.body.displayName;
user.avatar = req.body.avatar;
user.password = req.body.password;
user.save((err, userStored) => {
if (err)
return res.status(500).send({Message: `Error. ${err}`});
res.status(200).send({product: userStored});
})
答案 0 :(得分:2)
这是可能的,因为您始终在修改该数据。如果要检查(isModified === false),请尝试使用以前的值更新文档(与之前的值相同)。您将在nModified中获得错误。
像,
let updatedata = {
'nOtp': nOtp
};
Model.update({_id: 'your_id'}, { $set: updatedata }, (error, doc) => {
if (error) return res.status(500).json(error);
// **Here below line you can check. If values is same as before**
if (doc.nModified === 0) return res.status(417).jsonp({message: 'document is not modified'});
return res.status(200).json({message: 'success'});
});
您可以在方法中执行相同操作