需求是這樣的:需要修改數(shù)據(jù)庫中某個表的所有數(shù)據(jù),所以,要全部導出,然后修改,修改完之后,再把修改后的數(shù)據(jù)給再導入到mongo去。
具體如下:
備份,導出一張表為json文件
![](http://img.jbzj.com/file_images/article/201810/2018102293712500.png?201892293747)
具體命令:
mongoexport --host localhost --port 27017 --username ezsonaruser --password 123456 --collection host_locations --db ezsonar_25 --out /root/host_locations.json
解釋:
- --host 后的 localhost:要導出數(shù)據(jù)庫 ip
- --port 后的 27017:要導出的實例節(jié)點端口號
- --username 后的 ezsonaruser:數(shù)據(jù)庫用戶名
- --password 后的 123456:數(shù)據(jù)庫用戶密碼
- --collection 后的 widgets-test:要導出的表名
- --db 后的 ezsonar_25:要導出的表所在數(shù)據(jù)庫名
- --out 后的 /root/host_locations.json:要導出的文件路徑(默認為當前文件夾)
![](http://img.jbzj.com/file_images/article/201810/2018102293909240.png?201892294043)
導出來后的文件,打開的樣子是醬紫的。
然后,你就可以在編輯器里面修改啦。修改完之后,再保存。保存之后就可以再導入到數(shù)據(jù)庫啦。
導入,批量插入json數(shù)據(jù)到一張表去
![](http://img.jbzj.com/file_images/article/201810/2018102294138407.png?201892294212)
具體命令:
mongoimport --host localhost --port 27017 --username ezsonaruser --password 123456 --collection host_locations_test --db ezsonar_25 --file /root/shaql/host_locations.json
解釋:
- -- host 后的 localhost:要導入的數(shù)據(jù)庫 ip
- --port 后的 27017:要導入的實例節(jié)點端口號
- --username 后的 ezsonaruser:數(shù)據(jù)庫用戶名
- --password 后的 123456:數(shù)據(jù)庫用戶密碼
- --collection 后的 host_locations_test:要導入的表名
- --db 后的 ezsonar_25:要導入的表所在數(shù)據(jù)庫名
- --file 后的 /root/shaql/host_locations.json:要導入的源文件路徑(默認為當前文件夾)
需要注意的地方:
1,不需要進入mongo命令行之后,就可以直接使用上面的2個導入導出命令。
2,導入導出的json文件,你不要隨意換行,導出來的就是一行一條數(shù)據(jù),你就原封不動的給修改完直接保存,不要換行。不要使用txt這么low的編輯器啦,換個高級點的編輯器吧。
最后,附上這個命令的help說明圖
mongoimport 導入的help信息展示如下
![](http://img.jbzj.com/file_images/article/201810/2018102294624636.png?201892294640)
mongoexport 導出的help信息展示如下
![](http://img.jbzj.com/file_images/article/201810/2018102294700274.png?201892294710)
另:
- -f, --fields:代表集合中的字段,可以根據(jù)設置選擇導出的字段;
- --type:代表導出輸出的文件類型,包括csv和json文件;
- --skip:跳過指定數(shù)量的數(shù)據(jù);
- --limit:讀取指定數(shù)量的數(shù)據(jù)記錄;
- --sort:對數(shù)據(jù)進行排序,可以通過參數(shù)指定排序的字段,并使用 1 和 -1 來指定排序的方式,其中 1 為升序排列,而-1是用于降序排列,如sort({KEY:1})。
#導出類型為json,數(shù)據(jù)庫:mapdb,集合:bike 字段:bikeId,lat,lng,current_time,source ,條件為source字段為ofo第一條數(shù)據(jù)
mongoexport --port 27030 -u sa -p Expressin@0618 -d mapdb -c bike -f bikeId,lat,lng,current_time,source --type=json -o bike.csv --query='{"source":"ofo"}' --limit=1
#導出類型為csv,數(shù)據(jù)庫:mapdb,集合:bike 字段:bikeId,lat,lng,current_time,source ,條件為source字段為ofo第一條數(shù)據(jù)
mongoexport --port 27030 -u sa -p Expressin@0618 -d mapdb -c bike -f bikeId,lat,lng,current_time,source --type=csv -o bike.csv --query='{"source":"ofo"}' --limit=1
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內(nèi)容請查看下面相關鏈接
您可能感興趣的文章:- MongoDB單表數(shù)據(jù)的導出和恢復實例講解
- MongoDB 導出導入備份恢復數(shù)據(jù)詳解及實例
- mongoDB4.2.8備份恢復與導出導入(推薦)
- MongoDB備份、還原、導出、導入、克隆操作示例
- 批量備份還原導入與導出MongoDB數(shù)據(jù)方式