MongoDB的导入导出(7)

导入/导出可以操作的是本地的mongodb服务器,也可以是远程的.

所以,都有如下通用选项:

-h host   主机

–port port    端口

-u username 用户名

-p passwd   密码

mongoexport 导出json格式的文件

问: 导出哪个库,哪张表,哪几列,哪几行?

-d  库名

-c  表名

-f  field1,field2…列名

-q  查询条件

-o  导出的文件名

csv  导出csv格式(便于和传统数据库交换数据)

例:

[root@localhost mongodb]# ./bin/mongoexport -d test -c news -o test.json

connected to: 127.0.0.1

exported 3 records

[root@localhost mongodb]# ls

bin  dump  GNU-AGPL-3.0  README  test.json  THIRD-PARTY-NOTICES

[root@localhost mongodb]# more test.json

{ “_id” : { “$oid” : “51fc59c9fecc28d8316cfc03” }, “title” : “aaaa” }

{ “_id” : { “$oid” : “51fcaa3c5eed52c903a91837” }, “title” : “today is sataday” }

{ “_id” : { “$oid” : “51fcaa445eed52c903a91838” }, “title” : “ok now” }

例2: 只导出goods_id,goods_name列

./bin/mongoexport -d test -c goods -f goods_id,goods_name -o goods.json

例3: 只导出价格低于1000元的行

./bin/mongoexport -d test -c goods -f goods_id,goods_name,shop_price -q ‘{shop_price:{$lt:200}}’ -o goods.json

注: _id列总是导出

mongoimport 导入

-d 待导入的数据库

-c 待导入的表(不存在会自己创建)

–type 
csv/json(默认)

–file 备份文件路径

例1: 导入json

./bin/mongoimport -d test -c goods –file
./goodsall.json

例2: 导入csv

./bin/mongoimport -d test -c goods –type
csv -f goods_id,goods_name –file ./goodsall.csv

./bin/mongoimport -d test -c goods –type
csv –headline -f goods_id,goods_name –file ./goodsall.csv

mongodump 导出二进制bson结构的数据及其索引信息

-d  库名

-c  表名

-f 
field1,field2…列名

例:

mongodump -d test  [-c 表名]  –out 导出路径

规律:

1:导出的文件放在以database命名的目录下

2: 每个表导出2个文件,分别是bson结构的数据文件(比如:goods.bson), json的索引信息(比如:goods.metadata.json)

3: 如果不声明表名, 导出所有的表

例如:mongodump
-d test –out C:\Users\yuxl\Desktop\mongodb\mongod\mongodumptest

mongorestore 导入二进制文件

例:

./bin/mongorestore -d test –dir 路径

例如:mongorestore
-d test –dir C:\Users\yuxl\Desktop\mongodb\mongodumptest\test

二进制备份,不仅可以备份数据,还可以备份索引,

备份数据比较小.