導入/導出可以操作的是本地的mongodb服務器,也可以是遠程的服務器
所以,都有如下通用選項:
-h host 主機
--port port 端口
-u username 用戶名
-p passwd 密碼
## mongoexport 導出
-d 庫名
-c 表名
-f field1,field2...列名
-q 查詢條件
-o 導出的文件名
--type=csv 導出csv格式(便于和傳統數據庫交換數據)
```
# 導出shop庫下面的goods表
./mongoexport -d shop -c goods -o goods.json
2015-08-20T18:12:05.693+0800 connected to: localhost #從哪里導出
2015-08-20T18:12:05.697+0800 exported 31 records # 導出的文檔數
# 導出shop庫下面的goods表中的goods_id,goods_name列
./mongoexport -d shop -c goods -f goods_id,goods_name -o goods_id_name.json
# 只導出價格低于1000元的行
./mongoexport -d shop -c goods -f goods_id,goods_name,shop_price -q '{shop_price:{$lt:200}}' -o goodslt100.json
# 導出shop庫下面的goods表中的goods_id,goods_name列
./mongoexport -d shop -c goods -f goods_id,goods_name -o ./goods_id_name.csv --type=csv
```
> 注意只能是導出數據,不包括相關的索引信息
詳情請參考: http://docs.mongodb.org/v3.0/reference/program/mongoexport/#bin.mongoexport
## mongoimport 導入
-d 待導入的數據庫
-c 待導入的表(不存在會自己創建)
--type csv/json(默認)
--file 備份文件路徑
```
# 導入json
./mongoimport -d shop -c goodslt100 --file ./goodslt100.json
# 導入csv,必須要指定fields
./bin/mongoimport -d test -c goods_csv --type csv -f goods_id,goods_name --file ./goodsall.csv
```
> 以上的導出,僅僅是導出數據,相關的索引信息沒有被導出;
二進制備份,不僅可以備份數據,還可以備份索引,
備份數據比較小.
參考: http://docs.mongodb.org/v3.0/reference/program/mongoimport/#bin.mongoimport
## mongodump 導出二進制bson結構的數據及其索引信息
-d 庫名
-c 表名
-f field1,field2...列名
mongodump -d test [-c 表名] 默認是導出到mongo下的dump目錄
1. 導出的文件放在以database命名的目錄下
2. 每個表導出2個文件,分別是bson結構的數據文件, json的索引信息
3. 如果不聲明表名, 導出所有的表
```
mongodump -d shop
```
參考: http://docs.mongodb.org/v3.0/reference/program/mongodump/#bin.mongodump
## mongorestore 導入二進制文件
mongorestore -h IP --port 端口 -u 用戶名 -p 密碼 -d 數據庫 --drop 文件存在路徑
--drop的意思是,先刪除所有的記錄,然后恢復
```
./mongorestore -d goods_bson ./dump/shop/ 3.0版本去掉了--directoryperdb
```
參考: http://docs.mongodb.org/v3.0/reference/program/mongorestore/#bin.mongorestore