mongodb导入导出数据顺序发生变化
  nQkVcpdWfLDr 2023年11月02日 47 0

项目中,发现通过mongodump导出,再通过mongoresto导入数据,发现数据顺序发生变化,从而导致前台显示数据错乱(由于后台直接采用数据库的默认排序,而未按业务排序)

mongodb版本:3.4.3

问题重现:

1.导出数据

mongodump  -u admin -p 123456  --authenticationDatabase admin -d coms -c docTpl --archive=/root/coms_bak_20170518.gz --gzip

mongodb导入导出数据顺序发生变化_数据

2.导入数据

mongorestore -u admin -p 123456 --drop -d coms -c docTpl --authenticationDatabase admin --gzip --archive=/home/coms_bak_20170518.gz

mongodb导入导出数据顺序发生变化_hive_02

3.数据差异

源库数据:

mongodb导入导出数据顺序发生变化_hive_03

目标库数据,此时数据顺序已经发生变化

mongodb导入导出数据顺序发生变化_hive_04

问题解决:

此时查看mongodump的帮助发现numParallelCollections选项

--numParallelCollections number of collections to dump in parallel (4 by default) (default: 4) 支持多个集合并发导出/导入默认是4

此处并没有说明单个集合也是采用并发导出导入,是不是与这个参数有关,尝试将--numParallelCollections=1

1.导出数据

mongodump  -u admin -p 123456  --authenticationDatabase admin --numParallelCollections=1 -d coms -c docTpl --archive=/root/coms_bak_20170524.gz --gzip

mongodb导入导出数据顺序发生变化_hive_05

2.导入数据

mongorestore -u admin -p 123456 --drop -d coms -c docTpl --authenticationDatabase admin --numParallelCollections=1 --gzip --archive=/home/coms_bak_20170524.gz 

mongodb导入导出数据顺序发生变化_hive_06

3.比较数据的顺序是否一样

源库数据:

mongodb导入导出数据顺序发生变化_数据_07

目标库数据:

mongodb导入导出数据顺序发生变化_hive_08

通过比较发现此时两边的数据顺序是完全一致的,所有由此可以得出numParallelCollections参数单个集合也是采用并发方式导出的。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
nQkVcpdWfLDr