1. 程式人生 > >PCB MongoDB 數據庫 Collection集合導出與導入

PCB MongoDB 數據庫 Collection集合導出與導入

cmder 清晰 分享圖片 增刪改查 還原 去掉 保持 字節 mongodb

由於一直以來用微軟可視化圖形界面習慣了,而MongoDB是命令式操作,而用系統自帶CMD操作不方便,

這裏介紹一款CMD的替代品,大小100多M。

Cmder工具下載 https://github.com/cmderdev/cmder/releases

接下來操作全部用Cmder工具來執行指令操作演示

一.Collection集合導出與導入工具介紹:

NoSQL中Collection集合對應SQL的的關系相當於表的概念,即對表的導出與導入。

導出集合數據工具 mongoexport.exe

導出集合數據工具 mongoimport.exe

技術分享圖片

二.準備階段

1.啟動 :Cmder.exe (沒安裝的話,用CMD一樣可以)

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.

PCB MongoDB 數據庫 Collection集合導出與導入