【问题标题】:How to fix records when models have be updated with mongodb使用 mongodb 更新模型时如何修复记录
【发布时间】:2011-06-19 04:34:18
【问题描述】:

我有一个使用 mongodb 的 rails 项目,我遇到的问题是当我有从以前的模型制作的记录(文档)时。 (我遇到了类错误,仅针对较旧的记录)

有没有一种快速的方法来修复那些 mongodb 文档的 rails 方式,使用一些命令。

或者是否有一个命令我可以使用 mongoid 运行它以在 mongo 中打开特定模型,然后我可以手动戳文档(删除不需要的关联)。

【问题讨论】:

  • 您必须编写一个 mongo 查询来更改需要更改的文档。 mongodb 中没有模型之类的东西,它纯粹是由您正在使用的某个应用程序库在顶部分层的一些抽象。
  • 并且不要通过mongo shell修改文档,它会错误地处理数据类型:mongodb.org/display/DOCS/…

标签: ruby-on-rails mongodb mongoid


【解决方案1】:

模式迁移的概念需要存在于 mongoid 中,我认为它不存在。如果您进行了简单的更改,例如重命名或删除字段,那么您可以使用更新语句轻松完成此操作,但对于更复杂的内容,您需要编写代码。

由于映射层不再兼容,您需要编写的代码很可能需要进入驱动程序级别来更改对象。

通常,当您在对象中进行架构更改时需要小心,因为服务器没有该概念并且无法强制执行它们。最终取决于您的代码或您使用的框架来保持兼容性。

从映射层的角度来看,当您映射系统而不进行批量升级以使事物保持在同一架构时,这通常是一个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-26
    相关资源
    最近更新 更多