Mongo導入導出

一 導出工具mongoexport

一、簡介

  Mongodb中的mongoexport工具能夠把一個collection導出成JSON格式或CSV格式(相似於表格的形式)的文件。能夠經過參數指定導出的數據項,也能夠根據指定的條件導出數據。web

二、參數解析

  -h:指明數據庫宿主機的IP
  -u:指明數據庫的用戶名
  -p:指明數據庫的密碼
  -d:指明數據庫的名字
  -c:指明collection的名字
  -f:指明要導出那些列
  -o:指明到要導出的文件名
  -q:指明導出數據的過濾條件mongodb

三、實例

  1)導出user集合中的數據到文件user.dat數據庫

./mongoexport -d my_mongodb -c user -o user.dat

  2)將foo庫中的t1集合導出到json文件json

./mongoexport -d foo -c t1 -o /data/t1.json

  3)導出CSV格式的數據svg

./mongoexport -d foo -c t2 --csv -f age,name -o /data/t2.csv

  4)指定過濾條件導出數據工具

./mongoexport -h 10.100.30.130 --port 27017 -d zhongtudao -c hand_result --type=csv -f datetime,url,show_count,click_count -q '{datetime:"20170402"}' -o ./20170402.csv

二 導入工具mongoexport

一、簡介

  Mongodb中的mongoimport工具能夠把一個特定格式文件中的內容導入到指定的collection中。該工具能夠導入JSON格式數據,也能夠導入CSV格式數據。大數據

二、參數解析

  -h:指明數據庫宿主機的IP
  -u:指明數據庫的用戶名
  -p:指明數據庫的密碼
  -d:指明數據庫的名字
  -c:指明collection的名字
  -f:指明要導入那些列
  -type:指明要導入的文件格式
  -headerline:指明第一行是列名,不須要導入 -file:指明要導入的文件ui

三、實例

  1)導入JSON數據url

./bin/mongoimport -d test -c students students.dat

  2)導入CSV格式文件中的內容spa

./bin/mongoimport -d test -c students --type csv --headerline --file students_csv.dat

三 異常

一、server returned error on SASL authentication step: Authentication failed.

  1)緣由
   數據庫實例的用戶列表爲空
  2)解決方法
   後面加個參數 –authenticationDatabase admin或者用權限用戶操做

四 注意事項

  1)mongoimport 執行導入前,新數據庫中沒有 XX 表同樣能夠導入成功;   2)mongoexport 和 mongoimport 所需的各個參數輸入的前後順序不嚴格;   3)對於副本集,mongoexport 的數據導出能夠是副本集中的 primary 節點,也能夠是 secondary 節點;   4)對於副本集,mongoimport 的數據導入必須是 primary 節點;   5)對於大數據量的導出,用 mongoexport 操做徹底不會有生產問題;   6)對於大數據量的導入(超過 500 MB),用 mongoimport 操做的話會很容易將 primary 7)節點拖垮,由於這會致使全量同步致使主節點崩潰,因此要避免生產環境中大數據量的導入。正確的作法是先創建單點,導入,以後再創建副本集。