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

因爲一直以來用微軟可視化圖形界面習慣了,而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.

相關文章
相關標籤/搜索