linux下mongo資料匯出匯入
阿新 • • 發佈:2021-09-06
因業務架構調整,需對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