您的位置:首页 > 数据库 > Mongodb

mongodb之mongoexport 和mongoimport介绍

2020-01-05 13:22 801 查看

环境:mongodb3.6.16二进制安装

一、mongoexport 参数和语法介绍:

Mongodb中的mongoexport工具可以把一个collection导出成JSON格式或CSV格式的文件。可以通过参数指定导出的数据项,也可以根据指定的条件导出数据。

mongoexport -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 -f 字段 -q 条件导出 --csv -o 文件名

-h 指明数据库宿主机的IP
-u 指明数据库的用户名
-p 指明数据库的密码
-d 指明数据库的名字
-c 指明collection的名字
-f 指明要导出那些列,以逗号分割,-f uid,name,age导出uid,name,age这三个字段
-o 指明到要导出的文件名
-q 指明导出数据的过滤条件,-q '{ "uid" : "100" }' 导出uid为100的数据
--type 指定文件类型
--authenticationDatabase 验证数据的名称

导出整张表数据:

[root@localhost ~]# mongoexport -h 127.0.0.1:6068 -u root -p TdLLQ6689 --authenticationDatabase admin -d dbtest002 -c mumu  -o ./1.dat
2020-01-05T11:54:48.956+0800    connected to: 127.0.0.1:6068
2020-01-05T11:54:48.956+0800    exported 3 records

[root@localhost ~]# cat 1.dat
{"_id":{"$oid":"5e0f162d1083b09e85237cb4"},"name":"小花","年级":"二年级","性别":"男","爱好":"学习"}
{"_id":{"$oid":"5e0f161d1083b09e85237cb3"},"name":"小花","年级":"二年级","性别":"男","爱好":"学习"}
{"_id":{"$oid":"5e0f16191083b09e85237cb2"},"name":"小花","年级":"二年级","性别":"男","爱好":"学习"}

导出表指定字段的数据:

[root@localhost ~]# mongoexport -h 127.0.0.1:6068 -u root -p TdLLQ6689 --authenticationDatabase admin -d dbtest002 -c mumu -f name,'年级','性别' -o ./2.dat
2020-01-05T11:55:41.187+0800    connected to: 127.0.0.1:6068
2020-01-05T11:55:41.187+0800    exported 3 records
[root@localhost ~]# cat 2.dat
{"_id":{"$oid":"5e0f162d1083b09e85237cb4"},"name":"小花","年级":"二年级","性别":"男"}
{"_id":{"$oid":"5e0f161d1083b09e85237cb3"},"name":"小花","年级":"二年级","性别":"男"}
{"_id":{"$oid":"5e0f16191083b09e85237cb2"},"name":"小花","年级":"二年级","性别":"男"}

导出表指定字段的csv格式数据:

[root@localhost ~]# mongoexport -h 127.0.0.1:6068 -u root -p TdLLQ6689 --authenticationDatabase admin -d dbtest002 -c mumu --type csv -f name,'年级' -o ./3.csv
[root@localhost ~]# cat 3.csv
name,年级
小花,二年级
小花,二年级
小花,二年级
[root@localhost ~]# mongoexport -h 127.0.0.1:6068 -u root -p TdLLQ6689 --authenticationDatabase admin -d dbtest002 -c mumu --csv -f name,'年级' -o ./1.csv
2020-01-05T11:58:56.598+0800    csv flag is deprecated; please use --type=csv instead
2020-01-05T11:58:56.599+0800    connected to: 127.0.0.1:6068
2020-01-05T11:58:56.600+0800    exported 3 records
[root@localhost ~]# cat 1.csv
name,年级
小花,二年级
小花,二年级
小花,二年级

导出json格式文件,默认导出的就是json格式的数据文件:

[root@localhost ~]# mongoexport -h 127.0.0.1:6068 -u root -p TdLLQ6689 --authenticationDatabase admin -d dbtest002 -c mumu --type json -f name,'年级' -o ./2.json
2020-01-05T12:01:28.951+0800    connected to: 127.0.0.1:6068
2020-01-05T12:01:28.951+0800    exported 3 records
[root@localhost ~]# cat 2.json
{"_id":{"$oid":"5e0f162d1083b09e85237cb4"},"name":"小花","年级":"二年级"}
{"_id":{"$oid":"5e0f161d1083b09e85237cb3"},"name":"小花","年级":"二年级"}
{"_id":{"$oid":"5e0f16191083b09e85237cb2"},"name":"小花","年级":"二年级"}

根据条件导出数据:
爱好打球的记录数:

[root@localhost ~]# mongoexport -h 127.0.0.1:6068 -u root -p TdLLQ6689 --authenticationDatabase admin -d dbtest002 -c chenji -q '{"爱好":"打球"}' -o ./daqiu.json
2020-01-05T12:10:21.788+0800    connected to: 127.0.0.1:6068
2020-01-05T12:10:21.788+0800    exported 2 records
[root@localhost ~]# cat daqiu.json
{"_id":{"$oid":"5e1160a3ef45ab936b74982a"},"name":"李四","年级":"一年级","性别":"女","爱好":"打球"}
{"_id":{"$oid":"5e116102ef45ab936b74982d"},"name":"赵武","年级":"五年级","性别":"男","爱好":"打球"}

二、mongoimport语法和参数介绍:

Mongodb中的mongoimport工具可以把一个特定格式文件中的内容导入到指定的collection中。该工具可以导入JSON格式数据,也可以导入CSV格式数据。

参数介绍:
-h 指明数据库宿主机的IP
-u 指明数据库的用户名
-p 指明数据库的密码
-d 指明数据库的名字
-c 指明collection的名字
-f 指明要导出那些列
-o 指明到要导出的文件名
-q 指明导出数据的过滤条件
--drop 插入之前先删除原有的
--headerline 指明第一行是列名,不需要导入。
-j 同时运行的插入操作数(默认为1),并行
--authenticationDatabase 验证数据的名称

导出数据,然后在恢复到表里面:
导出数据:

[root@localhost ~]# mongoexport -h 127.0.0.1:6068 -u root -p TdLLQ6689 --authenticationDatabase admin -d dbtest002 -c fenshu   -o ./111.bat
2020-01-05T12:46:21.264+0800    connected to: 127.0.0.1:6068
2020-01-05T12:46:21.265+0800    exported 8 records

恢复到表里面:

[root@localhost ~]# mongoimport -h 127.0.0.1:6068 -u root -p TdLLQ6689 --authenticationDatabase admin -d dbtest002 -c fenshu --drop ./111.bat
2020-01-05T12:50:07.154+0800    connected to: 127.0.0.1:6068
2020-01-05T12:50:07.154+0800    dropping: dbtest002.fenshu
2020-01-05T12:50:07.181+0800    imported 7 documents

部分字段的表数据导入:
指定字段导出:

[root@localhost ~]# mongoexport -h 127.0.0.1:6068 -u root -p TdLLQ6689 --authenticationDatabase admin -d dbtest002 -c fenshu --type json -f name,'年级' -o ./222.bat
2020-01-05T12:57:16.030+0800    connected to: 127.0.0.1:6068
2020-01-05T12:57:16.030+0800    exported 7 records

指定字段导入表时避免主键冲突,因而加参数--drop

[root@localhost ~]# mongoimport   -h 127.0.0.1:6068 -u root -p TdLLQ6689 --authenticationDatabase admin -d dbtest002 -c fenshu  --upsertFields name,'年级' --drop ./222.bat
2020-01-05T12:58:22.422+0800    connected to: 127.0.0.1:6068
2020-01-05T12:58:22.428+0800    imported 7 documents
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: