Javascript 什么';在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()方法时,您的文档不会

我很难理解用Node.js更新Mongoose中文档的更好方法是什么。如果您这样设置文档的属性:

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()
是正确的方法。