MongoDB 数据导入和导出、备份和恢复

注:mongoexport和mongoimport针对库中的表,用于数据导入和导出,mongodump和mongorestore针对于库,用于备份和恢复。

一、mongodb导出

1、导出/导入数据时,连接mongodb服务器参数介绍:

-h host   主机
--port port    端口
-u username 用户名
-p passwd   密码

注:

如果没有用户,可以去掉-u和-p。
如果导出本机的数据库,可以去掉-h。
如果是默认端口,可以去掉--port。
以下是针对无用户,导入导出本地数据库,数据库使用默认端口,所以省略这些连接数据库的前提条件。

2、mongoexport 导出文件参数介绍:

-d  库名(如果想导出所有数据库,可以去掉-d)
-c  表名
-f  field1,field2...列名
-q  查询条件
-o  导出的文件名
-- csv  导出csv格式(便于和传统数据库mysql交换数据)

二、导出数据实例

1、导出shop数据库的sdo表格的xh和name列中xh号小于或等于100的数据,并且导出到当前路径下,保存的文件名称为test.sdo.json

./mongoexport  -d shop -c sdo -f xh,name -q '{xh:{$lte:100}}' -o ./test.sdo.json

2、导出csv格式,方便在mysql数据中导入。

 ./mongoexport  -d shop -c sdo -f _id,xh,name -q '{xh:{$lte:100}}' --csv -o ./test.sdo.csv

注:以上的mongoexport导出,仅仅是导出数据,相关的索引信息没有被导出

三、mongodb导入

导入数据参数:

-d 待导入的数据库
-c 待导入的表(不存在会自己创建)
--type  json(默认)或csv
--file 待导入的文件

四、导入数据实例

1、将当前路径下test.sdo.json文件数据导入到shop数据库的teach表中,格式为json

./mongoimport -d shop -c teach --type json --file ./test.sdo.json

2、将csv文件导入到shop数据库的reache表中,并且格式转换为json格式。–headerline表示忽略csv数据的表头字段。

./mongoimport -d shop -c reache --type csv --headerline --file  ./test.sdo.csv

比如_id,xh,name。导入CSV数据,表头字段需要忽略。

[root@linux bin]#  more test.sdo.csv
  _id,xh,name
  ObjectId(6331962397200000fa004f26),1,test1
  ObjectId(633250c2b8660000e8002103),2,test2
 ...(其他省略)

五、mongodb导出二进制bson结构数据及索引信息

二进制备份,不仅可以备份数据,还可以备份索引,备份数据比较小,速度快.

导出需要的参数:

-d  库名
-c  表名
-f  field1,field2...列名

六、导出bson数据结构实例(备份)

1、语法:mongodump -d test [-c 表名] 默认是导出到mongo下的dump目录

2、将shop数据库的sdo表数据导出到默认的路径。

./mongodump -d shop -c sdo

3、查看导出的数据,默认放在dump目录

[root@linux bin]#  ls
 dump ......(其他省略)

4、查看dump目录,导出的表格生成了两个文件分别为:bson结构数据和json索引数据

[root@linux bin]#  cd dump/
[root@linux dump]#  ls
 shop
[root@linux dump]#  cd shop/
[root@linux shop]#  ls
 sdo.bson sdo.metadata.json
[root@linux shop]# 

5、 如果不声明表名, 导出所有的表

./mongodump -d shop

七、导入bson结构数据(恢复)

./mongorestore -d testd ./dump/shop

-d :将数据导入或恢复数据的数据库名称,可以自己随意命名。
./dump/shop:备份的数据库路径

注:有时需要加上--drop参数,意思是,先删除原有数据库,然后恢复(--drop慎用)

八、参考链接:

https://www.cnblogs.com/qingtianyu2015/p/5968400.html
https://segmentfault.com/a/1190000004263279
https://www.py.cn/db/mongodb/14116.html
https://www.cnblogs.com/gaopeng527/p/4508361.html

posted @   jianmuzi  阅读(3736)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
TOP 底部
点击右上角即可分享
微信分享提示