0
点赞
收藏
分享

微信扫一扫

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

禾木瞎写 2023-03-13 阅读 81

项目中,发现通过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导入导出数据顺序发生变化_hive

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导入导出数据顺序发生变化_数据_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导入导出数据顺序发生变化_数据_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导入导出数据顺序发生变化_数据_08

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

举报

相关推荐

0 条评论