MongoDB使用mongoexport和mongoimport命令,批量匯出和匯入JSON資料到同一張表的例項
阿新 • • 發佈:2020-01-09
需求是這樣的:需要修改資料庫中某個表的所有資料,所以,要全部匯出,然後修改,修改完之後,再把修改後的資料給再匯入到mongo去。
具體如下:
備份,匯出一張表為json檔案
具體命令:
mongoexport --host localhost --port 27017 --username ezsonaruser --password 123456 --collection host_locations --db ezsonar_25 --out /root/host_locations.json
解釋:
- --host後的localhost:要匯出資料庫 ip
- --port後的27017:要匯出的例項節點埠號
- --username後的ezsonaruser:資料庫使用者名稱
- --password後的123456:資料庫使用者密碼
- --collection後的widgets-test:要匯出的表名
- --db後的ezsonar_25:要匯出的表所在資料庫名
- --out後的/root/host_locations.json:要匯出的檔案路徑(預設為當前資料夾)
匯出來後的檔案,開啟的樣子是醬紫的。
然後,你就可以在編輯器裡面修改啦。修改完之後,再儲存。儲存之後就可以再匯入到資料庫啦。
匯入,批量插入json資料到一張表去
具體命令:
mongoimport --host localhost --port 27017 --username ezsonaruser --password 123456 --collection host_locations_test --db ezsonar_25 --file /root/shaql/host_locations.json
解釋:
- -- host後的localhost:要匯入的資料庫 ip
- --port後的27017:要匯入的例項節點埠號
- --username後的ezsonaruser:資料庫使用者名稱
- --password後的123456:資料庫使用者密碼
- --collection後的host_locations_test:要匯入的表名
- --db後的ezsonar_25:要匯入的表所在資料庫名
- --file後的/root/shaql/host_locations.json:要匯入的原始檔路徑(預設為當前資料夾)
需要注意的地方:
1,不需要進入mongo命令列之後,就可以直接使用上面的2個匯入匯出命令。
2,匯入匯出的json檔案,你不要隨意換行,匯出來的就是一行一條資料,你就原封不動的給修改完直接儲存,不要換行。不要使用txt這麼low的編輯器啦,換個高階點的編輯器吧。
最後,附上這個命令的help說明圖
mongoimport 匯入的help資訊展示如下
mongoexport 匯出的help資訊展示如下
另:
- -f,--fields:代表集合中的欄位,可以根據設定選擇匯出的欄位;
- --type:代表匯出輸出的檔案型別,包括csv和json檔案;
- --skip:跳過指定數量的資料;
- --limit:讀取指定數量的資料記錄;
- --sort:對資料進行排序,可以通過引數指定排序的欄位,並使用 1 和 -1 來指定排序的方式,其中 1 為升序排列,而-1是用於降序排列,如sort({KEY:1})。
#匯出型別為json,資料庫:mapdb,集合:bike 欄位:bikeId,lat,lng,current_time,source ,條件為source欄位為ofo第一條資料 mongoexport --port 27030 -u sa -p Expressin@0618 -d mapdb -c bike -f bikeId,source --type=json -o bike.csv --query='{"source":"ofo"}' --limit=1 #匯出型別為csv,資料庫:mapdb,source --type=csv -o bike.csv --query='{"source":"ofo"}' --limit=1
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對我們的支援。如果你想了解更多相關內容請檢視下面相關連結