NodeJS |猫鼬不更新数据库中的值

时间:2020-01-09 20:38:29

标签: node.js mongodb

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

1 个答案:

答案 0 :(得分:0)

isInMembersArray.markModified("user.approved ");之前使用isInMembersArray.save();

在更新混合路径的子路径时,需要显式调用markModified()。

每个文档

由于Mixed是无模式类型,因此您可以将其值更改为其他任何值,但是Mongoose失去了自动检测和保存这些更改的功能。要告诉Mongoose混合类型的值已更改,您需要调用doc.markModified(path),并将路径传递给刚更改的混合类型。