如何使用Mongoose向现有文档添加属性?

时间:2013-01-31 06:33:02

标签: node.js mongodb mongoose

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

我修改了我的models / user.js,为用户架构添加了一个属性“isAdmin”。

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

但是现在当我保存文档时(即:我更新了我的个人资料)。当我在我的应用程序中的console.log(用户)时,isAdmin属性显示...(它按预期为假)...但是当我直接转到mongo db控制台时,它不存在于现有文档中。

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

编辑:我已决定添加role属性,只需修改特定用户将其角色设置为robomongo中的admin,而不是使用mongoose进行此操作。

2 个答案:

答案 0 :(得分:1)

我同意Hector关于编写代码以处理丢失的isAdmin字段与设置为false的字段相同而不是为此烦恼。

但是如果你想要它完成,一种方法是明确地将isAdmin标记为已修改,以便后续调用save将写出默认值:

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

答案 1 :(得分:0)

只需更新mongo shell中的现有文档即可添加新属性。