【发布时间】:2013-01-15 04:49:12
【问题描述】:
我在数据库中有一个现有的用户对象。
我已经修改了我的模型/user.js 以将属性“isAdmin”添加到用户架构中。
, isAdmin : { type: Boolean, default: false }
但是现在当我保存文档时(即:我更新了我的个人资料)。当我在我的应用程序中使用 console.log(user) 时,isAdmin 属性会出现......(它是预期的错误)......但是当我直接转到 mongo db 控制台时,它不存在于现有文档中。
如果我创建一个新的用户对象,isAdmin 属性会出现在新文档中。如何将此属性添加到现有文档中,以便它直接显示在数据库中?
编辑:我决定添加一个role 属性,只需在robomongo 中修改特定用户,将其角色设置为admin,而不是使用猫鼬来完成。
【问题讨论】:
-
只是出于好奇,您为什么希望所有文档都具有新属性?像 MongoDB 这样的文档数据库的部分吸引力在于,并非所有文档都需要具有相同的结构。我宁愿利用这一点,也不愿与它“战斗”。
-
我定义了模式并保存了用户对象,希望能够手动进入数据库并将我的帐户的 isAdmin 标志设置为 true。但是那个属性没有出现。即使当我使用猫鼬转储对象时,它也设置为 false。这让我很困惑。
-
嘿@chovy 我有同样的问题,事实上我也在尝试为定义的猫鼬模型添加一个新属性,例如,因为你已经向模型添加了一个新的属性 isAdmin,然后只有新用户才能在集合中拥有 isAdmin 属性吗?在处理请求时,我们缺少旧用户的 isAdmin 属性..,您将如何处理这个问题?您可能会争辩说,旧用户会是得到一个 false 的属性,但我不这么认为,我必须尝试一下..,有人尝试过吗?