1. 程式人生 > 資料庫 >MongoDB使用mongoexport和mongoimport命令,批量匯出和匯入JSON資料到同一張表的例項

MongoDB使用mongoexport和mongoimport命令,批量匯出和匯入JSON資料到同一張表的例項

需求是這樣的:需要修改資料庫中某個表的所有資料,所以,要全部匯出,然後修改,修改完之後,再把修改後的資料給再匯入到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

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對我們的支援。如果你想了解更多相關內容請檢視下面相關連結