服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - MongoDB - MongoDB mongoexport工具的使用简介

MongoDB mongoexport工具的使用简介

2021-05-09 20:58AsiaYe MongoDB

这篇文章主要介绍了MongoDB mongoexport工具的使用简介,帮助大家更好的理解和学习使用MongoDB数据库,感兴趣的朋友可以了解下

01  基本介绍

   mongoexport是一个数据导出的工具,使用的时候类似mysql中的select into outfile语法,可以将某个数据库中的数据以json或者csv的格式导出来。

我们可以通过直接连接mongos或者连接mongod来导出数据。如果你的集群是分片集群,连接mongos会导出所有分片上这个集合的相关数据。

02  常用参数

-h:指明数据库宿主机的ip

-u:指明数据库的用户名

-p:指明数据库的密码

-d:指明数据库的名字

-c:指明collection的名字

-f:指明要导入那些列

--type:默认是json类型,可以导出csv类型

-o:指明要导出的文件名称,如果不指定,则导出到标准输出

-q:查询过滤器,可以输入一个json,从而导出查询后的结果

上面的常用参数还有对应的长参数选项,例如-h也可以输入--host代替。参数的详细介绍,可以通过mongoexport --help获取到。

03  命令

1、导出数据库new下面的test集合的number字段,命令如下:

?
1
2
3
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

我们看下导出的结果:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
{"_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}

可以看到,即使我们只指定了number字段,也会自动为我们导出_id字段,由此可以得出结论,:如果导出的格式是json类型的,_id字段是默认导出的。

默认导出的类型是json类型,如果我们想导出csv类型,可以增加--type=csv参数。添加了这个参数之后,结果如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
number
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011

可以看到,就不会自动的输出_id这个字段了。这个可能也是一个值得讨论的点。我认为可能是这个工具的一个小bug,csv类型不输出_id字段,而json类型输出_id字段。

2、导出某个特定的查询结果,例如导出number=10的那条记录:

?
1
2
3
[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系列

当然,这个值只是个经验值,如果你的导出的字段比较多的话,或者字段的长度比较长,可能这个值没有太多的参考意义。

在实际进行数据导出的时候,发现执行导出的mongodb服务器负载有一定上升,内存使用率有一定上升,但是没有特别明显性能抖动,整个过程不会锁数据库,所以还是比较安全的。

线上操作的时候,尤其是针对敏感的业务,为了最大程度上降低对业务的影响,如果你是在mongos上执行数据导出,建议先保证这个mongos对业务不可见,执行导出之后,在重新对外提供服务;如果你是在mongod上进行数据导出,则最好选择secondary节点进行,避免对线上业务的影响。

05  反向导入

   mongodb还有一个工具,叫mongoimport,可以将mongoexport导出的数据导入到mongodb数据库中,下面是一个mongoimport的命令:

?
1
2
3
[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的描述。

今天的内容就到这里。

以上就是mongodb mongoexport工具的使用简介的详细内容,更多关于mongodb mongoexport工具的使用的资料请关注服务器之家其它相关文章!

原文链接:https://cloud.tencent.com/developer/article/1800972

延伸 · 阅读

精彩推荐
  • MongoDBMongodb实现定时备份与恢复的方法教程

    Mongodb实现定时备份与恢复的方法教程

    这篇文章主要给大家介绍了Mongodb实现定时备份与恢复的方法教程,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面...

    chenjsh364522020-05-13
  • MongoDBMongoDB凭什么跻身数据库排行前五

    MongoDB凭什么跻身数据库排行前五

    MongoDB以比去年同期超出65.96分的成绩继续雄踞榜单前五,这个增幅在全榜仅次于PostgreSQL的77.99,而其相对于4月份的6.10分的增长也是仅次于微软SQL Server排名...

    孙浩峰3892020-05-22
  • MongoDBmongodb基本命令实例小结

    mongodb基本命令实例小结

    这篇文章主要介绍了mongodb基本命令,结合实例形式总结分析了MongoDB数据库切换、查看、删除、查询等基本命令用法与操作注意事项,需要的朋友可以参考下...

    dawn-liu3652020-05-26
  • MongoDBMongoDB安装图文教程

    MongoDB安装图文教程

    这篇文章主要为大家详细介绍了MongoDB安装图文教程,分为两大部分为大家介绍下载MongoDB和安装MongoDB的方法,感兴趣的小伙伴们可以参考一下 ...

    Yangyi.He6132020-05-07
  • MongoDBMongoDB中javascript脚本编程简介和入门实例

    MongoDB中javascript脚本编程简介和入门实例

    作为一个数据库,MongoDB有一个很大的优势——它使用js管理数据库,所以也能够使用js脚本进行复杂的管理——这种方法非常灵活 ...

    MongoDB教程网6982020-04-24
  • MongoDB迁移sqlserver数据到MongoDb的方法

    迁移sqlserver数据到MongoDb的方法

    这篇文章主要介绍了迁移sqlserver数据到MongoDb的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...

    听枫xl9682021-01-03
  • MongoDBMongoDB 内存使用情况分析

    MongoDB 内存使用情况分析

    都说 MongoDB 是个内存大户,但是怎么知道它到底用了多少内存呢...

    MongoDB教程网10002020-09-29
  • MongoDB分布式文档存储数据库之MongoDB分片集群的问题

    分布式文档存储数据库之MongoDB分片集群的问题

    这篇文章主要介绍了分布式文档存储数据库之MongoDB分片集群的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋...

    Linux-18743072020-12-20