问题描述
我是 MongoDB 的新手,正在尝试在两者之间迁移数据。 所以我可以连接到 DB A 并查询 - 但我的问题是我如何连接到 B 并从 A -> B 复制内容?我发现了这个
mongoengine connection and multiple databases
设置两个连接并复制相同的模型,而不是将 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