1

だから私はmongoオブジェクトを持っています:

@connection.register
class UserInformation(Document):
    structure = {
        'extra_infos':[{
            'nickname':basestring,
            'name_on_account':basestring,
        }],
        'age': int,
        'mean_distance':float,
    }

そして、ドキュメントをこれに更新しました

@connection.register
class UserInformation(Document):
    structure = {
        'extra_infos':[{
            'nickname':basestring,
            'name_on_account':basestring,
            'email':basestring,
        }],
        'age': int,
        'mean_distance':float,
    }

次に、次の移行を進めました。

class UserInformationMigration(DocumentMigration):
    def allmigration01_email(self):
        self.target = {'extra_infos':{'$exists':True},'extra_infos.email':{'$exists':False}}
        self.update = {'$set':{'extra_infos.email':[]}}

次に、次のコマンドを実行しました

migration = UserInformationMigration(UserInformation)
migration.migrate_all(collection=connection['user_info'])

しかし、次のエラーが発生し続けます。

UpdateQueryError: 'extra_infos.email' not found in UserInformation's structure

私は何を間違っていますか?extra_infos が配列だからですか?移行が正しく定義されていないのではないかと思いますが、配列 extra_infos に対して別の方法で移行を定義する方法がわかりません

4

2 に答える 2