因爲一直以來用微軟可視化圖形界面習慣了,而MongoDB是命令式操做,而用系統自帶CMD操做不方便,html
這裏介紹一款CMD的替代品,大小100多M。git
Cmder工具下載 https://github.com/cmderdev/cmder/releasesgithub
接下來操做所有用Cmder工具來執行指令操做演示數據庫
一.Collection集合導出與導入工具介紹:json
NoSQL中Collection集合對應SQL的的關係至關於表的概念,即對錶的導出與導入。工具
導出集合數據工具 mongoexport.exe 性能
導出集合數據工具 mongoimport.exe 學習
二.準備階段編碼
1.啓動 :Cmder.exe (沒安裝的話,用CMD同樣能夠)spa
2.輸入:D: 進行MongoDB安裝盤
3.輸入:cd D:\Program Files\MongoDB\Server\4.0\bin 進入MongoDB安裝目錄
三.Collection集合導出--Json格式
mongoexport -d pcbdb -c ppeflow -o "e:\db\ppeflow.json"
參數說明:
-d pcbdb 數據庫名
-c ppeflow 集合名(至關SQL中的表名)
-o "e:\db\ppeflow.json" 輸出路徑
--typeo json 默認json輸出,固然加入此參數入
四.Collection集合導出--CSV格式
mongoexport -d pcbdb -c ppeflow --type csv -f "_id,techname,orderid" -o "e:\db\ppeflow.csv"
參數說明:
-d pcbdb 數據庫名
-c ppeflow 集合名(至關SQL中的表名)
--type csv 輸出格式(注意type前面有2個-)
-f "_id,techname,orderid" 輸出字段名(字段與字段之間用,分隔)
-o "e:\db\ppeflow.csv" 輸出路徑
五.Collection集合導入--Json格式
mongoimport.exe -d pcbdb -c ppeflow1 --file "e:\db\ppeflow.json"
參數說明:
-d pcbdb 數據庫名
-c ppeflow1 集合名(當不存在時,自動建立)
-o "e:\db\ppeflow.json" 導入Json路徑
--typeo json 默認json輸入格式,固然加入此參數入
六.Collection集合導入--CSV格式
mongoimport -d pcbdb -c ppeflow2 --type csv -f "_id,techname,orderid" --file "e:\db\ppeflow.csv"
參數說明:
-d pcbdb 數據庫名
-c ppeflow2 集合名(至關SQL中的表名)
--type csv 輸出格式(注意type前面有2個-)
-f "_id,techname,orderid" 輸入字段名(字段與字段之間用,分隔)
--file "e:\db\ppeflow.csv" 讀取CSV路徑(注意file前面有2個-)
-headerline 除去首行的字段行(此例子沒加此參數,緣由報錯,未找到解決方法)
七.關鍵參數說明
h,--host :表明遠程鏈接的數據庫地址,默認鏈接本地Mongo數據庫; --port:表明遠程鏈接的數據庫的端口,默認鏈接的遠程端口27017; -u,--username:表明鏈接遠程數據庫的帳號,若是設置數據庫的認證,須要指定用戶帳號; -p,--password:表明鏈接數據庫的帳號對應的密碼; -d,--db:表明鏈接的數據庫; -c,--collection:表明鏈接數據庫中的集合; -f, --fields:表明導入集合中的字段; --type:表明導入的文件類型,包括csv和json,tsv文件,默認json格式; --file:導入的文件名稱 --headerline:導入csv文件時,指明第一行是列名,不須要導入;
八.凝問解答
1.導出的json與CSV是什麼文本編碼類型是什麼格式?
導出的文本編碼類型是(encoding)UTF8.
2.用Excel打開CSV是亂碼,怎麼解決呢?
方法1:用NotePad打開,而後點擊菜單【編碼】->【轉爲ANSI編碼】,再用Excel打開便可。
方法2:用Excel引用文本的方式加轉換,參考https://jingyan.baidu.com/article/48a4205705c098a925250455.html
3.導入CSV到MongoDB去掉首行的字段行?
按官方文檔:在導入CSV參數中加入-headerline 便可
mongoimport -d pcbdb -c ppeflow2 --type csv -headerline -f "_id,techname,orderid" --file "e:\db\ppeflow.csv"
但實際在筆者實測中,目前沒解決.報以下錯誤,
4.MongoDB導出CSV能夠指定字段導出,那麼輸出Json文件是否能指定字段導出?
不能,導出的Json文件是整個集成中全部字段.
5.MongoDB導出CSV仍是Json格式,如何選擇?
經過如下對比,請自行選擇.
大小對比: CSV佔用字節數少 優點
JSON佔用字節數多
深層次結構對比:CSV若是對於大於2層嵌套結構樹節構查看不明確。 優點
JSON深層次結構用Json樹結構查看器對結構定義清晰,
低層次結構對比:CSV若是對於<=2層嵌套結構樹節構查看定義清晰, 平局
JSON低層次結構用Json樹結構查看器對結構定義清晰, 平局
字段對比:CSV可選字段輸出, 優點
JSON所有字段輸出
反序化列:CSV不支持
JSON支持 優點
6.MongoDB導入CSV是否指定字段輸入?
不行,導入CSV並不能夠指定字段導入,好比CSV中有3個字段,導入到MongoDB中不能只導入指定的2個字段
而這裏的指定字段名,是CSV文件中每一個字段指定一個字段名,導入到MongoDB中,
若是CSV有3個字段,而導入的字段名只有2個,那CSV中第3個字段由MongoDB默認fled3字段
(最好CSV有多少個字段,導入的字段名就有多少個,保持字段名數量與字段數量匹配,而且順序一致)
7.MongoDB導出的Json後,而後再導入,導不進去?
因爲導出JSON會將主鍵_id 即OjbectId,一塊兒輸出來的,若是再導入數據庫中的的話,確定會出現主鍵衝突
最佳解決方法:導入到另一個集合,而後再經過2個集成的惟一主鍵對比,再進行突處理---衝突不替換,仍是衝突替換)
後續對MongoDB的探索學習,主要是基於SQL已有的功能,在MongoDB也應該有的功能進行相應的實現,
後續更新內容:NoSQL與SQL 增刪改查的語句區別,主鍵索引,主從庫複製,備份還原,請求數據與性能監控,Log日誌,大尺寸文件GridFS.