mongodb - Mongorestore 在没有 --drop 的情况下更新记录(如果已经存在)

标签 mongodb database-backups

我收集了大量数据,每个周末我都必须将它们转移到另一台机器上。所以我计划进行增量备份和恢复。如实验所示,如果 _id 已经存在,mongorestore 永远不会合并数据。 基于上述问题,我尝试使用 mongoimport 和 export ,但存在相同的问题,因为现有记录未合并。任何可能的解决方案都会有所帮助。

error in mongoimport command caused by :: 11000 E11000 duplicate key error index: news.news_data.$id dup key: { : ObjectId('5404410d9f5323ef734dac68') }

最佳答案

第一种情况是正确的。如果已经存在,Mongorestore 不会更新文档。还原时会跳过这些文档。 在第二种情况下,请尝试使用带有 --upsert 选项的 mongoimport。如果 _id 已经存在,它将合并记录。

例子:

mongoimport --db dbname --collection collname --upsert --file file.json

关于mongodb - Mongorestore 在没有 --drop 的情况下更新记录(如果已经存在),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25967898/

相关文章:

java - 如何将 JSON 对象转换为 DBObject?

mysql - mysqldump 是如何工作的?

Mysqldump 性能下降

java - TransactionRequiredException 执行更新/删除查询

mongodb - 在 Meteor 中使用带有参数的#each

python - pg_dump : too many command-line arguments (first is "--host=localhost")

php - 如何自动化雅虎小型企业中托管的数据库备份

AWS 的 MongoDB 备份策略

mongodb - 当从 mongoDB 中的上限集合中删除文档时,它会出错吗?

c - C 解析器无法读取单项数组 json feed