加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 电商 > 正文

MongoDB中mongoexport工具的用处是什么?如何使用?

发布时间:2022-03-04 15:15:04 所属栏目:电商 来源:互联网
导读:这篇文章主要给大家介绍MongoDB mongoexport工具,包括mongoexport工具的基本介绍,常用参数,命令等等,对大家了解mongoexport工具的使用有一定的参考价值,感兴趣的朋友就继续往下看吧。 01 基本介绍 mongoexport是一个数据导出的工具,使用的时候类似mysq
       这篇文章主要给大家介绍MongoDB mongoexport工具,包括mongoexport工具的基本介绍,常用参数,命令等等,对大家了解mongoexport工具的使用有一定的参考价值,感兴趣的朋友就继续往下看吧。
 
01  基本介绍
       mongoexport是一个数据导出的工具,使用的时候类似mysql中的select into outfile语法,可以将某个数据库中的数据以json或者csv的格式导出来。
 
 
02  常用参数
       -h:指明数据库宿主机的IP
 
       -u:指明数据库的用户名
 
       -p:指明数据库的密码
 
       -d:指明数据库的名字
 
       -c:指明collection的名字
 
       -f:指明要导入那些列
 
       -type:默认是json类型,可以导出csv类型
 
       -o:指明要导出的文件名称,如果不指定,则导出到标准输出
 
       -q:查询过滤器,可以输入一个json,从而导出查询后的结果
 
       上面的常用参数还有对应的长参数选项,例如-h也可以输入--host代替。参数的详细介绍,可以通过mongoexport --help获取到。
 
03  命令
       1、导出数据库new下面的test集合的number字段,命令如下:
 
mongoexport --port=27016 -u "yeyz" --authenticationDatabase "admin" -p "123456" -d new -c test --fields=number -o /data/test.json
2021-02-23T22:09:52.481+0800 connected to: localhost:27016
2021-02-23T22:09:52.512+0800 exported 2000 records
       我们看下导出的结果:
 
{"_id":{"$oid":"6006c46993a711b384cc8c92"},"number":1000.0}
{"_id":{"$oid":"6006c46993a711b384cc8c93"},"number":1001.0}
{"_id":{"$oid":"6006c46993a711b384cc8c94"},"number":1002.0}
{"_id":{"$oid":"6006c46993a711b384cc8c95"},"number":1003.0}
{"_id":{"$oid":"6006c46993a711b384cc8c96"},"number":1004.0}
{"_id":{"$oid":"6006c46993a711b384cc8c97"},"number":1005.0}
{"_id":{"$oid":"6006c46993a711b384cc8c98"},"number":1006.0}
{"_id":{"$oid":"6006c46993a711b384cc8c99"},"number":1007.0}
{"_id":{"$oid":"6006c46993a711b384cc8c9a"},"number":1008.0}
{"_id":{"$oid":"6006c46993a711b384cc8c9b"},"number":1009.0}
{"_id":{"$oid":"6006c46993a711b384cc8c9c"},"number":1010.0}
{"_id":{"$oid":"6006c46993a711b384cc8c9d"},"number":1011.0}
{"_id":{"$oid":"6006c46993a711b384cc8c9e"},"number":1012.0}
        可以看到,就不会自动的输出_id这个字段了。这个可能也是一个值得讨论的点。我认为可能是这个工具的一个小bug,csv类型不输出_id字段,而json类型输出_id字段。
 
       2、导出某个特定的查询结果,例如导出number=10的那条记录:
 
[root@VM-0-14-centos ~]# mongoexport --port=27016 -u "yeyz" --authenticationDatabase "admin"
-p "123456" -d new -c test --type=csv -q {"number":10} --fields=number -o /data/test.json
2021-02-23T22:38:18.319+0800 connected to: localhost:27016
2021-02-23T22:38:18.321+0800 exported 1 record
       可以直接在-q参数后面跟查询条件。
 
04  经验值
       今天的操作是在分片集群上进行操作的,一共7个分片,我导出了3亿多条数据,单个分片上大概5000w条数据吧,每条数据导出2个字段,每个分片上的导出时间大约在2个小时左右。
 
       机器硬件配置:
 
SATA硬盘4TB
普通内存128G
intel 至强E5-4系列
 
05  反向导入
       mongodb还有一个工具,叫mongoimport,可以将mongoexport导出的数据导入到mongodb数据库中,下面是一个mongoimport的命令:
 
[root@VM-0-14-centos ~]# mongoimport --port=27016 -u "yeyz" --authenticationDatabase "admin"
-p "123456" -d new -c test1 --type=csv --fields=number --file=/data/test.csv
2021-02-23T22:44:21.930+0800 connected to: localhost:27016
2021-02-23T22:44:22.146+0800 imported 2001 documents
       mongoimport的整个操作类似insert操作,参数方面和mongoexport大同小异,唯一多的比较重要的参数就是writeconcern的值,这个值设置的级别越高,那么导出数据的时间就越慢,但是数据安全性会越高。详细内容请看官方文档对writeconcern的描述。

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读