【问题标题】:Retrieve existing MongoDB collection after adding inheritance添加继承后检索现有的 MongoDB 集合
【发布时间】:2013-06-17 16:51:26
【问题描述】:

我使用 Mongoid 作为我的数据库包装器。我有一个没有继承的模型,并且集合中有数千个文档。然后我将它重构为从基类继承。现在我无法检索原始数据。查询类或基类时看不到。

我应该如何处理这种变化?我看到 Mongoid 确实允许继承并将所有文档存储在父集合中,然后添加一个“_type”字段以进行类型区分。我是否应该将数据迁移到临时集合,部署代码更改,然后将临时数据迁移到新的基本集合并设置 _type 字段?

谢谢

【问题讨论】:

    标签: ruby-on-rails mongodb migration mongoid database


    【解决方案1】:

    决定只将生产转储到我的本地数据库。然后将文档复制到新的基类集合并验证 _type 是否已设置。然后最终将其恢复到生产环境。

    【讨论】:

    • 如何将文档复制到新的基类中?
    • 导入集合后,检查它是否有 _type 字段。如果没有,您可以使用db.<collection>.update({ '_type': null }, { $set: { '_type': "<Ruby model class name>" } }, { multi: true }); 进行设置,然后最后将它们复制到新的基类集合中:db.<collection>.copyTo("<parent_collection>");
    猜你喜欢
    • 2019-07-28
    • 1970-01-01
    • 2014-08-16
    • 1970-01-01
    • 2018-02-22
    • 2017-02-02
    • 1970-01-01
    • 2014-03-07
    • 2023-03-14
    相关资源
    最近更新 更多