【问题标题】:Mongoengine - use multiple connections for migrationMongoengine - 使用多个连接进行迁移
【发布时间】:2021-03-08 19:27:22
【问题描述】:

我是 MongoDB 新手,正在尝试在两者之间迁移数据。 所以我可以连接到 DB A 并查询 - 但我的问题是如何连接到 B 并从 A -> B 复制内容?我找到了这个

mongoengine connection and multiple databases

但它声明模型特定于每个数据库以使用 meta 标记。

设置两个连接并复制相同的模型,而不是将 A 转储到磁盘并读入 B。我对两者都没有 CLI 访问权限,所以我无法通过管道输入文件(如果这是一个选项,就像 SQL 一样) ,因此想在 B 上的 FastAPI 中使用触发器从 A 中拉出。

【问题讨论】:

    标签: python mongodb mongoengine fastapi


    【解决方案1】:

    我认为直接使用pymongo 进行此操作可能更容易,因为它更容易,而且您不需要在 mongoengine 模型中解析文档。

    c1 = MongoClient('mongodb://host1:27017/')
    c2 = MongoClient('mongodb://host2:27017/')
    for doc in c1.firstdabase.somecollection.find():
          c2.seconddatabase.somecollection.insert(doc)
    

    上面的代码是一个粗略的解决方案。根据您的数据量,您可能应该寻找批处理:https://pymongo.readthedocs.io/en/stable/examples/bulk.html

    【讨论】:

    • 谢谢,但我们正在项目中运行mongoengine。这是一个固定的东西......
    • Mongoengie 在幕后使用 pymongo。例如,您可以使用模型获取对象并使用 pymongo 插入第二个对象。
    • 哦,我不知道... Mongo 新手。到时候会仔细研究一下。
    • 这是一个很好的例子:stackoverflow.com/questions/12068558/…
    猜你喜欢
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 2018-10-07
    • 1970-01-01
    • 2015-01-05
    • 1970-01-01
    • 1970-01-01
    • 2018-08-29
    相关资源
    最近更新 更多