node.js - NodeJS | Mongoose 不更新数据库中的值

标签 node.js mongodb

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

相关文章:

node.js - 无法让 NODE_ENV 在空类时粘在我的 MEAN 堆栈上

javascript - Puppeteer - 在框架内运行函数

javascript - 在 DomParser 中使用 hasAttribute

node.js - Mongoose 从没有模型的集合中删除

javascript - 什么是 MongoDB 的严格模式,使用它是个好主意吗?

javascript - AWS S3 putobject 以及使用 Rekognition 进行 DetectFaces 之后

node.js - 如何使用 node、createPresignedPost 和 fetch 将图像文件直接从客户端上传到 AWS S3

python - Cassandra 性能低下?

node.js - 反向填充 Mongoose

java - 您是否应该打开多个 Mongo 连接或创建一个 API 并调用它?