1. 程式人生 > >mongodb導出與導入

mongodb導出與導入

mongo 跳過第一行 csv 備份文件 rds json格式 pass 交換 所有

Mongodb導出與導入

1: 導入/導出可以操作的是本地的mongodb服務器,也可以是遠程的.
所以,都有如下通用選項:
-h host 主機
--port port 端口
-u username 用戶名
-p passwd 密碼

2: 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 (1.需要指定列名。2.--headline跳過第一行)

技術分享圖片
(第一行是無用的)

mongodump 導出二進制bson結構的數據及其索引信息
-d 庫名
-c 表名
-f field1,field2...列名

例:
mongodum -d test [-c 表名] 默認是導出到mongo下的dump目錄

技術分享圖片

規律:
1:導出的文件放在以database命名的目錄下
2: 每個表導出2個文件,分別是bson結構的數據文件, json的索引信息
3: 如果不聲明表名, 導出所有的表

mongorestore 導入二進制文件
例:
./bin/mongorestore -d test --directoryperdb dump/test/ (mongodump時的備份目錄)

二進制備份,不僅可以備份數據,還可以備份索引,
備份數據比較小.

mongodb導出與導入