1. 程式人生 > 其它 >linux下mongo資料匯出匯入

linux下mongo資料匯出匯入

因業務架構調整,需對mongo中資料進行遷移,因資料量較大,視覺化介面打不開,所以系統命令操作

匯出

mongoexport -h 127.0.0.1 --authenticationDatabase=admin -u admin -p admin== -c dev_device_data -d iot -o devState -q'{"identifier":"PhV_phsA","deviceId":{"$in":[]},"occurredTime":{"$gte":{"$date":"2021-08-08T00:00:00.000Z"}},"occurredTime":{"$lte":{"$date":"2021-08-10T00:00:00.000Z"}}}'   --type=json 

關鍵引數說明:

  • -h,--host :代表遠端連線的資料庫地址,預設連線本地Mongo資料庫;
  • --port:代表遠端連線的資料庫的埠,預設連線的遠端埠27017;
  • -u,--username:代表連線遠端資料庫的賬號,如果設定資料庫的認證,需要指定使用者賬號;
  • -p,--password:代表連線資料庫的賬號對應的密碼;
  • -d,--db:代表連線的資料庫;
  • -c,--collection:代表連線資料庫中的集合;
  • -f, --fields:代表集合中的欄位,可以根據設定選擇匯出的欄位;
  • --type:代表匯出輸出的檔案型別,包括csv和json檔案;
  • -o, --out:代表匯出的檔名;
  • -q, --query:代表查詢條件;
  • --skip:跳過指定數量的資料;
  • --limit:讀取指定數量的資料記錄;
  • --sort:對資料進行排序,可以通過引數指定排序的欄位,並使用 1 和 -1 來指定排序的方式,其中 1 為升序排列,而-1是用於降序排列,如sort({KEY:1})。

注意:

  當查詢時同時使用sort,skip,limit,無論位置先後,最先執行順序 sort再skip再limit。

匯入

mongoimport --port 27017 -u admin -p admin -d admin -c dev_device_data  --type=json --file /root/devData

關鍵引數說明:

  • h,--host :代表遠端連線的資料庫地址,預設連線本地Mongo資料庫;
  • --port:代表遠端連線的資料庫的埠,預設連線的遠端埠27017;
  • -u,--username:代表連線遠端資料庫的賬號,如果設定資料庫的認證,需要指定使用者賬號;
  • -p,--password:代表連線資料庫的賬號對應的密碼;
  • -d,--db:代表連線的資料庫;
  • -c,--collection:代表連線資料庫中的集合;
  • -f, --fields:代表匯入集合中的欄位;
  • --type:代表匯入的檔案型別,包括csv和json,tsv檔案,預設json格式;
  • --file:匯入的檔名稱
  • --headerline:匯入csv檔案時,指明第一行是列名,不需要匯入;
  • --numInsertionWorkers 100 說是可以多執行緒操作,實測沒有多大效果
  • --upsert 有則更新,沒有則insert