我在本地更新了我的用户模型,并将其推送到我的heroku环境。
但是,现在我遇到了一个老用户没有所有新用户所拥有的字段的问题。
从heroku console
如何专门为缺少必填字段的单个用户添加字段?我也使用mongoid
。
答案 0 :(得分:0)
有多种选择:
如果您不需要查询此新字段,只需在该字段中添加:default => whatever
值即可。这将为新实例设置默认值,并为没有该字段的现有模型提供默认值。
如果您确实需要查询此字段,并且想要为没有该字段的所有现有文档添加默认值,则可以使用:$exists
query查找它们并{{ 1}}修复它们:
update_all
这将在幕后进行M.where(:missing_field.exists => false).update_all(:missing_field => desired_value)
更新,因此只会修改:$set => { :missing_field => desired_value }
。
如果只有一个并且您知道它是哪个,那么只需抓住它,更新值并保存:
:missing_field
如果您想直接与数据库对话,请使用m = M.find(known_id)
m.missing_value = desired_value
m.save
和find
与集合:
update_all