我有大量的数据收集,我必须每周末转移到另一台机器。所以我计划进行增量备份和恢复。经过实验,如果_id已经存在,mongorestore永远不会合并数据。 基于上述问题,我尝试使用mongoimport并导出但存在同样的问题,因为现有记录未合并。任何可能的解决方案都会有所帮助。
由:: 11000 E11000重复密钥引起的mongoimport命令中的错误 错误索引:news.news_data。$ id dup key:{: ObjectId(' 5404410d9f5323ef734dac68')}
答案 0 :(得分:13)
第一种情况是真的。 Mongorestore如果已存在则不更新文档。它在恢复时会贬低那些文件。 在第二种情况下,请尝试使用带有--upsert选项的mongoimport。如果_id已存在,它将合并记录。
前:
mongoimport --db dbname --collection collname --upsert --file file.json
答案 1 :(得分:1)
这是一个老问题,但我们找到了一个很好的解决方法:
在这种情况下,更新的文档不会被覆盖
无论如何,在MongoDB Jira门票TOOLS-121
上投票