注: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