我有一个 mongo 服务器从亚马逊 LB 后面的服务器接收数据,2 天前出现错误,部分服务器将它们的数据发送到具有同名数据库的旧 mongo 服务器,我们意识到并且立即修复它。
现在我的部分数据存储在错误的机器上。 我现在需要的是一种方法来比较 2 个数据库(每个数据库都有 2 个相关集合)之间的数据,并仅将缺失的数据插入到正确的集合中。
我不关心 mongo 提供的唯一 ID,但我确实需要通过我们创建的字段“uuid”进行比较。
蒙戈版本:2.4.4
我是 Mongo 的新手,非常感谢任何帮助。
最佳答案
是的,你可以。按照这些步骤...
1 mongoexport,然后根据要比较和导入的字段进行 mongoimport。
- mongoexport --db db_name --collection collection_name --type csv --fields field1,field2,field3 --out /var/www/export.csv
在指定位置获得导出的 CSV 文件后。打开并删除不需要的字段...
- mongoimport --db db_name --collection collection_name --type csv --file /var/www/export.csv --fields field1,field2,field3 --upsertFields field1,field2,field3
注意:
1. 如果您在生产环境中工作,处理庞大的数据库,然后将您的 mongo 从查询负载中解放出来,然后导出,否则它可能会卡住。
关于mongodb - Mongo 比较并导入缺失数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35273412/