【问题标题】:How to change field type from dict to ReferenceField如何将字段类型从 dict 更改为 ReferenceField
【发布时间】:2023-03-11 12:00:02
【问题描述】:

我有两个这样定义的文档:

from mongoengine import Document, StringField, IntField, DictField

class PetModel(Document):
    name = StringField()
    age = IntField()

class PersonModel(Document):
    name = StringField()
    pet = DictField()

如果我已经创建了 PersonModel 对象,有没有办法将宠物字段类型更改为 ReferenceField?

【问题讨论】:

    标签: python mongodb mongoengine


    【解决方案1】:

    您需要编写一个迁移脚本,最简单的可能是:

    • 收集所有 PetModel 并构建映射 {pet_id: pet_dict}
    • 使用 pymongo(Mongoengine 使用的驱动程序)遍历 PersonModel 文档,并使用上面构建的映射将 pet 字段从 DBRef 转换为 dict
    • 保存/更新该文档

    MongoEngine 有一个页面解释了一些迁移用例:http://docs.mongoengine.org/guide/migration.html#documents-migration

    【讨论】:

      猜你喜欢
      • 2022-09-27
      • 2016-06-30
      • 1970-01-01
      • 2017-02-13
      • 2020-06-24
      • 2019-11-18
      • 2017-07-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多