Javascript 什么';在mongoose中更新文档的最佳方式是什么?
我很难理解用Node.js更新Mongoose中文档的更好方法是什么。如果您这样设置文档的属性:Javascript 什么';在mongoose中更新文档的最佳方式是什么?,javascript,mongodb,mongoose,Javascript,Mongodb,Mongoose,我很难理解用Node.js更新Mongoose中文档的更好方法是什么。如果您这样设置文档的属性: constolduser=UserModel.findOne({name:user.userid}); oldUser.firstName=user.firstName | | oldUser.firstName; oldUser.lastName=user.lastName | | oldUser.lastName; 然后,当您到达预保存挂钩中的document.save()方法时,您的文档不会
constolduser=UserModel.findOne({name:user.userid});
oldUser.firstName=user.firstName | | oldUser.firstName;
oldUser.lastName=user.lastName | | oldUser.lastName;
然后,当您到达预保存挂钩中的document.save()方法时,您的文档不会被设置为已修改。isModified()始终为false。但是,当您使用set()
时,对于isModified()
您确实会将文档设置为true,例如:
constolduser=await UserModel.findOne({name:user.name});
oldUser.set('firstName',user.firstName | | oldUser.firstName);
oldUser.set('lastName',user.lastName | | oldUser.lastName);
更新文档并检查文档是否真的被修改了,哪种方法更好?有没有比这两种方法更好的方法?任何提示、建议或建议都将不胜感激 用例是什么?我相信
save()
不会将其标记为已修改,因为它只会覆盖整个文档,但是set()
会修改现有文档的一部分,因此会将其标记为已更新。我认为如果要检查修改的状态,使用set()
是正确的方法。