在数组中我正在更新一个值。我正在设置成员(member)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.save();
之前使用 isInMembersArray.markModified("user.approved ");
更新混合路径的子路径时,需要显式调用markModified()。
每个文档
由于 Mixed 是无模式类型,因此您可以将值更改为您喜欢的任何其他值,但 Mongoose 失去了自动检测和保存这些更改的能力。要告诉 Mongoose Mixed 类型的值已更改,您需要调用 doc.markModified(path),将路径传递给刚刚更改的 Mixed 类型。
关于node.js - NodeJS | Mongoose 不更新数据库中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59671746/