资讯专栏INFORMATION COLUMN

MongoDB数据导入导出工具详解

社区管理员 / 900人阅读

一、MongoDB mongoimport与mongoexport工具介绍

1.1 mongoexport参数介绍

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

-h,--host          # 代表远程连接的数据库地址,默认连接本地Mongo数据库;
--port               # 代表远程连接的数据库的端口,默认连接的远程端口27017;
-u,--username  # 代表连接远程数据库的账号,如果设置数据库的认证,需要指定用户账号;
-p,--password  # 代表连接数据库的账号对应的密码;
-d,--db             # 代表连接的数据库;
-c,--collection  # 代表连接数据库中的集合;
-f, --fields        # 代表集合中的字段,可以根据设置选择导出的字段;
--type               # 代表导出输出的文件类型,包括csv和json文件;
-o, --out           # 代表导出的文件名;
-q, --query       # 代表查询条件;
--skip              # 跳过指定数量的数据;
--limit              # 读取指定数量的数据记录;
--sort                # 对数据进行排序,可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而-1是用于降序排列,如sort({KEY:1})。

【注】当查询时同时使用sort,skip,limit,无论位置先后,最先执行顺序 sort再skip再limit。

1.2 mongoimport参数介绍

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

h,--host           # 代表远程连接的数据库地址,默认连接本地Mongo数据库;
--port              # 代表远程连接的数据库的端口,默认连接的远程端口27017;
-u,--username # 代表连接远程数据库的账号,如果设置数据库的认证,需要指定用户账号;
-p,--password # 代表连接数据库的账号对应的密码;
-d,--db            # 代表连接的数据库;
-c,--collection # 代表连接数据库中的集合;
-f, --fields       # 代表导入集合中的字段;
--type              # 代表导入的文件类型,包括csv和json,tsv文件,默认json格式;
--file               # 导入的文件名称
--headerline    # 导入csv文件时,指明第一行是列名,不需要导入;

二、操作演示

2.1 生成测试数据

# 批量插入数据
> for (var i = 1; i <= 1000; i++) {
    db.starcto.insert( { x : i , name: "A", name1:"B", name2:"C", name3:"D"} )
}

# 统计文档中记录数量
> db.starcto.count()
1000

# 查看前9条文档记录
> db.starcto.find().limit(9)
{ "_id" : ObjectId("615193319768c94af0d82a75"), "x" : 1, "name" : "A", "name1" : "B", "name2" : "C", "name3" : "D" }
{ "_id" : ObjectId("615193319768c94af0d82a76"), "x" : 2, "name" : "A", "name1" : "B", "name2" : "C", "name3" : "D" }
{ "_id" : ObjectId("615193319768c94af0d82a77"), "x" : 3, "name" : "A", "name1" : "B", "name2" : "C", "name3" : "D" }
{ "_id" : ObjectId("615193319768c94af0d82a78"), "x" : 4, "name" : "A", "name1" : "B", "name2" : "C", "name3" : "D" }
{ "_id" : ObjectId("615193319768c94af0d82a79"), "x" : 5, "name" : "A", "name1" : "B", "name2" : "C", "name3" : "D" }
{ "_id" : ObjectId("615193319768c94af0d82a7a"), "x" : 6, "name" : "A", "name1" : "B", "name2" : "C", "name3" : "D" }
{ "_id" : ObjectId("615193319768c94af0d82a7b"), "x" : 7, "name" : "A", "name1" : "B", "name2" : "C", "name3" : "D" }
{ "_id" : ObjectId("615193319768c94af0d82a7c"), "x" : 8, "name" : "A", "name1" : "B", "name2" : "C", "name3" : "D" }
{ "_id" : ObjectId("615193319768c94af0d82a7d"), "x" : 9, "name" : "A", "name1" : "B", "name2" : "C", "name3" : "D" }

2.2 mongoexport数据导出

(1)导出类型为json、数据库为ucloud、集合为starcto 、条件为x字段为8的一条数据

[root@ansible ~]# mongoexport -h192.168.0.104 --port 27017 -uroot -pUcloudcn --authenticationDatabase=admin -d ucloud -c starcto  --type=json -o starcto.json --query='{"x":8}' --limit=1
2021-09-27T18:00:24.155+0800	connected to: 192.168.0.104:27017
2021-09-27T18:00:24.157+0800	exported 1 record

[root@ansible ~]# cat starcto.json 
{"_id":{"$oid":"615193319768c94af0d82a7c"},"x":8.0,"name":"A","name1":"B","name2":"C","name3":"D"}

(2)导出类型为csv、数据库为ucloud、集合为starcto 、条件为x字段为5的一条数据

[root@ansible ~]# mongoexport -h192.168.0.104 --port 27017 -uroot -pUcloudcn --authenticationDatabase=admin -d ucloud -c starcto  -f name,name1,name2 --type=csv -o starcto.csv --query='{"x":5}' --limit=1

[root@ansible ~]# cat starcto.csv 
name,name1,name2
A,B,C

【注意】CSV格式需要-f 指定输出字段,否则会报错。

(3)常规导出数据库为ucloud、集合为starcto 、条件为x字段为6的一条数据

[root@ansible ~]# mongoexport -h192.168.0.104 --port 27017 -uroot -pUcloudcn --authenticationDatabase=admin -d ucloud -c starcto  -o starcto.bak --query='{"x":6}' --limit=1
2021-09-27T18:54:25.218+0800	connected to: 192.168.0.104:27017
2021-09-27T18:54:25.220+0800	exported 1 record

[root@ansible ~]# cat starcto.bak 
{"_id":{"$oid":"615193319768c94af0d82a7a"},"x":6.0,"name":"A","name1":"B","name2":"C","name3":"D"}

2.3 mongoimport数据导入

(1)导入json文件到数据库为ucloud、集合为stargao

[root@ansible ~]# mongoimport -h192.168.0.104 --port 27017 -uroot -pUcloudcn --authenticationDatabase=admin -d ucloud -c stargao --type=json --file starcto.json
2021-09-27T19:00:31.205+0800	connected to: 192.168.0.104:27017
2021-09-27T19:00:31.241+0800	imported 1 document

# 查看导入数据情况
> use ucloud
switched to db ucloud
> show collections
starcto
stargao
> db.stargao.find()
{ "_id" : ObjectId("615193319768c94af0d82a7c"), "x" : 8, "name" : "A", "name1" : "B", "name2" : "C", "name3" : "D" }

(2)导入csv文件到数据库为ucloud、集合为stargao

[root@ansible ~]#  mongoimport -h192.168.0.104 --port 27017 -uroot -pUcloudcn --authenticationDatabase=admin -d ucloud -c stargao --type=csv --headerline --file starcto.csv
2021-09-27T19:03:53.100+0800	connected to: 192.168.0.104:27017
2021-09-27T19:03:53.168+0800	imported 1 document

> db.stargao.find()
{ "_id" : ObjectId("615193319768c94af0d82a7c"), "x" : 8, "name" : "A", "name1" : "B", "name2" : "C", "name3" : "D" }
{ "_id" : ObjectId("6151a519c8003237a4a6dd2e"), "name" : "A", "name1" : "B", "name2" : "C" }

【注意】导入csv文件到数据库,这里必须增加--headerline参数。

(3)常规导入备份文件到数据库为ucloud、集合为stargao

[root@ansible ~]# mongoimport -h192.168.0.104 --port 27017 -uroot -pUcloudcn --authenticationDatabase=admin -d ucloud -c stargao starcto.bak
2021-09-27T19:08:27.442+0800	connected to: 192.168.0.104:27017
2021-09-27T19:08:27.493+0800	imported 1 document

> db.stargao.find()
{ "_id" : ObjectId("615193319768c94af0d82a7c"), "x" : 8, "name" : "A", "name1" : "B", "name2" : "C", "name3" : "D" }
{ "_id" : ObjectId("6151a519c8003237a4a6dd2e"), "name" : "A", "name1" : "B", "name2" : "C" }
{ "_id" : ObjectId("615193319768c94af0d82a7a"), "x" : 6, "name" : "A", "name1" : "B", "name2" : "C", "name3" : "D" }


文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/128167.html

相关文章

  • MongoDB备份与恢复

    摘要:一的导入与导出导出工具概念中的工具可以把一个导出成格式或格式的文件。可以通过参数指定导出的数据项,也可以根据指定的条件导出数据。恢复工具概念是从备份中恢复数据的工具,它主要用来获取的输出结果,并将备份的数据插入到运行的中。 一、Mongodb的导入与导出 1.1、导出工具:mongoexport 概念: mongoDB中的mongoexport工具可以把一个collection导出成J...

    2450184176 评论0 收藏0
  • Mongodb数据导出导入

    摘要:最近升级库的过程中遇到了数据的导入导出问题。速度都比较快千万级数据也就几分钟的事。 最近升级mongodb库的过程中遇到了数据的导入导出问题。查了一下,目前mongodb自带的导入导出工具还是比较好用的,我操作库的时候主要用了下面两个: 1.导入导出json格式,方便解析,可以给其他业务使用 导出: mongoexport --host mongodb.host --port 270...

    Aceyclee 评论0 收藏0
  • mongodb数据库恢复备份

    摘要:准备数据库备份恢复用到的工具是和,数据表导入导出用到的是和,所以一定要进入到有这四个工具的文件下,一般这四个文件是在下一数据库的备份恢复数据库备份从本机把数据库导出到上级目录主机加端口数据库名称导出的地址导出结果数据库恢复把上级 准备: 数据库备份恢复用到的工具是mongodump和mongorestore,数据表导入导出用到的是mongoimport和mongoexport,所以一定...

    30e8336b8229 评论0 收藏0
  • MongoDB常用命令

    摘要:启动允许后台运行,但是必须指定日志记录文件路径指定日志记录文件路径导出指定数据库指定指定输出文件名称导出为格式指明需要导出哪些列指明导出格式为导入导入文件指明要导入的文件格式 启动MongoDB $mongod --fork --logpath=/data/log/r3.log--fork 允许mongod后台运行,但是必须指定日志记录文件路径(Enables a daemon mod...

    joywek 评论0 收藏0
  • mongoDB运维篇②】备份与恢复(导入导出)

    摘要:导入导出可以操作的是本地的服务器也可以是远程的服务器所以都有如下通用选项主机端口用户名密码导出库名表名列名查询条件导出的文件名导出格式便于和传统数据库交换数据导出库下面的表从哪里导出导出的文档数导出库下 导入/导出可以操作的是本地的mongodb服务器,也可以是远程的服务器所以,都有如下通用选项: -h host 主机 --port port 端口 -u username 用...

    lakeside 评论0 收藏0

发表评论

0条评论

社区管理员

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<