在数组中,我正在更新一个值。我将成员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/

10-09 14:51