You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Djongo的Django项目中,如何在RunPython迁移中获取PyMongo客户端?

在Djongo驱动的Django应用中通过RunPython获取PyMongo客户端进行自定义迁移

要在自定义迁移中获取PyMongo的数据库实例,你可以直接通过schema_editor参数的连接对象拿到原生的PyMongo数据库引用,具体修改代码如下:

from django.db import migrations


def _custom_migration(apps, schema_editor):
    # 从schema_editor获取Djongo对应的PyMongo数据库实例
    db = schema_editor.connection.db
    # 执行原生PyMongo操作
    db.collection1.update_many({}, [{'$set': {"field2": "$field1.id"}}])


class Migration(migrations.Migration):
    operations = [
        migrations.RunPython(_custom_migration),
    ]

说明

Djongo作为Django的MongoDB驱动,其数据库连接对象(schema_editor.connection)封装了原生的PyMongo客户端实例,通过.db属性就能直接获取到当前数据库的引用,之后你就可以调用所有PyMongo的原生方法(比如update_many、find等)来执行自定义操作。

如果你的项目配置了多数据库,确保迁移使用的是对应Djongo的数据库别名,schema_editor会自动关联当前迁移目标数据库的连接。

内容的提问来源于stack exchange,提问作者StuffHappens

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 03:21:06