因業務架構調整,需對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