在数组中,我正在更新一个值。我将成员approved
值设置为true
,然后我console.log所有对象,它显示了数组,其中用户将approved
状态更新为true
。但是保存后值未保存到MongoDB中,我仍然看到approved
值为false
。这是代码:
userIndex = isInMembersArray.members.findIndex(user => user.username === requestedMember);
isInMembersArray.members[userIndex].approved = true;
console.log(isInMembersArray) // shows data with updated user in members array
isInMembersArray.save();
最佳答案
在isInMembersArray.markModified("user.approved ");
之前使用isInMembersArray.save();
更新混合路径的子路径时,需要显式调用markModified()。
每份文件
由于Mixed是一种无模式类型,因此您可以将其值更改为其他任何值,但是Mongoose失去了自动检测和保存这些更改的功能。要告诉Mongoose混合类型的值已更改,您需要调用doc.markModified(path),并将路径传递给刚更改的混合类型。
关于node.js - NodeJS | Mongoose 不更新数据库中的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59671746/