在数组中,我正在更新一个值。我将成员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();
答案 0 :(得分:0)
在isInMembersArray.markModified("user.approved ");
之前使用isInMembersArray.save();
在更新混合路径的子路径时,需要显式调用markModified()。
每个文档
由于Mixed是无模式类型,因此您可以将其值更改为其他任何值,但是Mongoose失去了自动检测和保存这些更改的功能。要告诉Mongoose混合类型的值已更改,您需要调用doc.markModified(path),并将路径传递给刚更改的混合类型。