【发布时间】:2015-12-15 04:35:27
【问题描述】:
我刚刚注意到,当我更新我的架构定义并添加一个字段时,例如“名称:字符串”,然后尝试使用
People.update( { _id: user_id }, { $set: { name: 'something' } } )
mongoose 不会更新我的属性。
我不断收到 nModified: 0 的响应。
我发现修复它的唯一方法是删除集合,然后新文档将完美运行。
我错过了什么吗? mongoose 是否以某种方式“缓存”了 mongodb 本身的集合模式,然后需要“删除”以“重新加载”属性?
【问题讨论】:
-
不,MongoDB 中没有存储模式定义。但是,如果您将属性设置为已经存在的值,mongodb 将报告 0 已修改,因为没有可修改的内容。您还说您正在更新架构定义,但是您是否在更改之间重新启动应用程序?您是否启用了此处未提及的其他插件。确定的最好方法是启用调试 `mongoose.set("debug",true)。然后您将查看发送的方法调用是否与您正在调用的不同。但请先检查其他事项。