node.js - 如何使用 Mongoose 向现有文档添加属性?

标签 node.js mongodb mongoose

我在数据库中有一个现有的用户对象。

我修改了我的 models/user.js 以将属性“isAdmin”添加到用户模式。

  , isAdmin     : { type: Boolean, default: false }

但现在当我保存文档时(即:我更新我的个人资料)。当我在我的应用程序中使用 console.log(user) 时会显示 isAdmin 属性...(如预期的那样是错误的)...但是当我直接转到 mongo 数据库控制台时,它不存在于现有文档中。

如果我创建一个新的用户对象,isAdmin 属性存在于新文档中。如何将此属性添加到现有文档,以便它直接显示在数据库中?

编辑:我决定添加一个 role 属性,并且只修改特定用户,在 robomongo 中将他们的角色设置为 admin,而不是使用 mongoose 来完成。

最佳答案

我同意 Hector 关于编写代码来处理丢失的 isAdmin 字段的观点,就像将其设置为 false 而不是为此烦恼。

但是如果你想完成它,一种方法是显式地将 isAdmin 标记为已修改,以便随后对 save 的调用将写出默认值:

doc.markModified('isAdmin');
doc.save();

关于node.js - 如何使用 Mongoose 向现有文档添加属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14619793/

相关文章:

javascript - JS 框架处理异步流程、回调和闭包?

node.js - Mongoose 文档 : Execute hook manually for testing

node.js - 如何使用 babel 构建非 js 文件?

javascript - Mongoose 模式内的相同模式

javascript - 使用 Mongoose 添加几何集合

node.js - mongoose query.exec() 中的正确错误处理

node.js - Mongoose 文本搜索与变音符号Sensitive

node.js - 向 Node.js 中的嵌套接口(interface)添加属性

javascript - 从 getInitialProps() 获取请求数据

javascript - 如何正确使用nodejs和javascript在mysql中存储blob数据