Mongoengine - 使用多个连接进行迁移

问题描述

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

mongoengine connection and multiple databases

但它指出模型特定于每个数据库以使用 Meta 标记

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

解决方法

我认为直接将 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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...