Mongodb ---- 数据导入导出/备份/恢复

**

步骤一:数据备份与恢复

**
1)数据备份

[root@mongodb51 ~]# mongodump --host  192.168.4.51 --port 27077
//不指定备份哪个库,默认备份所有,不指定目录,自动生成dump目录,备份的数据在这个里面

[root@mongodb51 ~]# bsondump dump/ddsdb/t1.bson   //查看bson文件内容

备份时指定备份的库和备份目录

[root@mongodb51 ~]# mongodump --host  192.168.4.51 --port 27077  -d  ddsdb -o /root/bbsdb
//-d备哪个库,-o指定备份的目录,备份bbsdb库里的所有到/root/bbsdb

只备份ddsdb库里的集合t1

[root@mongodb51 ~]#  mongodump --host  192.168.4.51 --port 27077  -d  ddsdb -c t1 -o /root/bbsdb.t 

2)恢复数据

[root@mongodb51 ~]# mongo --host 192.168.4.51 --port 27077
> show tables;
col
t1
> db.t1.remove({})

>exit
[root@mongodb51 ~]# mongorestore --host  192.168.4.51 --port 27077  -d  ddsdb  /root/bbsdb.t/ddsdb/
//-d  ddsdb恢复到数据库的目录,从/root/bbsdb.t1/ddsdb/目录恢复

**

步骤二:数据的导入导出

**
1)导出
用csv的格式导出

[root@mongodb51 ~]# mongoexport  --host  192.168.4.51 --port 27077  -d  ddsdb  -c t1 -f name --type=csv    -o /root/lig1.csv
//导出csv格式,必须要指定导出的字段名 ,导出name字段 


[root@mongodb51 ~]# mongoexport  --host  192.168.4.51 --port 27077  -d  ddsdb  -c t1 -q '{name:"bob"}' -f name,age --type=csv    -o /root/lig2.csv
//从ddsdb的它1里导出名字为bob的name字段和age字段

用json的格式导出

[root@mongodb51 ~]# mongoexport  --host  192.168.4.51 --port 27077 -d ddsdb -c t1 --type=json    -o /root/lig3.json
//导出json格式
 
[root@mongodb51 ~]# mongoexport  --host  192.168.4.51 --port 27077 -d ddsdb -c t1 -f name --type=json    -o /root/lig4.json
//指定列名导出,导出name字段

2)导入

[root@mongodb51 ~]# mongo --host 192.168.4.51 --port 27077
> use ddsdb

> show tables;
col
t1
> db.t1.remove({})

> exit

用json的格式导入:表里要没有数据,不然导入不成功

[root@mongodb51 ~]# mongoimport --host  192.168.4.51 --port 27077 -d ddsdb -c t1 --type=json       /root/lig3.json

[root@mongodb51 ~]# mongo --host 192.168.4.51 --port 27077 
> use ddsdb

> db.t1.count({})
17

用csv的格式导入:表里可以有数据

[root@mongodb51 ~]# mongoimport --host  192.168.4.51 --port 27077  -d ddsdb -c t1   --headerline  --type=csv /root/lig1.csv
//必须指定文件的列名,不然不成功 -f和--headerline不能一起用  --headerline:把第一行的字段隐藏即去掉文件列的标题name,不然标题也会导进去,导入时t1表可以不存在
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值