PCB MongoDB 資料庫 Collection集合匯出與匯入

來源:互聯網
上載者:User

標籤:開啟   不能   合數   word   進入   解決方案   方式   欄位   支援   

由於一直以來用微軟可視化圖形介面習慣了,而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集合匯出與匯入

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.