溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MongoDB使用mongoexport和mongoimport命令,批量導(dǎo)出和導(dǎo)入JSON數(shù)據(jù)到同一張表的實例

發(fā)布時間:2020-10-06 05:07:48 來源:腳本之家 閱讀:393 作者:李學(xué)凱 欄目:MongoDB數(shù)據(jù)庫

需求是這樣的:需要修改數(shù)據(jù)庫中某個表的所有數(shù)據(jù),所以,要全部導(dǎo)出,然后修改,修改完之后,再把修改后的數(shù)據(jù)給再導(dǎo)入到mongo去。

具體如下:

備份,導(dǎo)出一張表為json文件

MongoDB使用mongoexport和mongoimport命令,批量導(dǎo)出和導(dǎo)入JSON數(shù)據(jù)到同一張表的實例

具體命令:

mongoexport --host localhost --port 27017 --username ezsonaruser --password 123456 --collection host_locations --db ezsonar_25 --out /root/host_locations.json

解釋:

  • --host 后的 localhost:要導(dǎo)出數(shù)據(jù)庫 ip
  • --port 后的 27017:要導(dǎo)出的實例節(jié)點端口號
  • --username 后的 ezsonaruser:數(shù)據(jù)庫用戶名
  • --password 后的 123456:數(shù)據(jù)庫用戶密碼
  • --collection 后的 widgets-test:要導(dǎo)出的表名
  • --db 后的 ezsonar_25:要導(dǎo)出的表所在數(shù)據(jù)庫名
  • --out 后的 /root/host_locations.json:要導(dǎo)出的文件路徑(默認為當(dāng)前文件夾)

MongoDB使用mongoexport和mongoimport命令,批量導(dǎo)出和導(dǎo)入JSON數(shù)據(jù)到同一張表的實例

導(dǎo)出來后的文件,打開的樣子是醬紫的。

然后,你就可以在編輯器里面修改啦。修改完之后,再保存。保存之后就可以再導(dǎo)入到數(shù)據(jù)庫啦。

導(dǎo)入,批量插入json數(shù)據(jù)到一張表去

MongoDB使用mongoexport和mongoimport命令,批量導(dǎo)出和導(dǎo)入JSON數(shù)據(jù)到同一張表的實例

具體命令:

mongoimport --host localhost --port 27017 --username ezsonaruser --password 123456 --collection host_locations_test --db ezsonar_25 --file /root/shaql/host_locations.json

解釋:

  • -- host 后的 localhost:要導(dǎo)入的數(shù)據(jù)庫 ip
  • --port 后的 27017:要導(dǎo)入的實例節(jié)點端口號
  • --username 后的 ezsonaruser:數(shù)據(jù)庫用戶名
  • --password 后的 123456:數(shù)據(jù)庫用戶密碼
  • --collection 后的 host_locations_test:要導(dǎo)入的表名
  • --db 后的 ezsonar_25:要導(dǎo)入的表所在數(shù)據(jù)庫名
  • --file 后的 /root/shaql/host_locations.json:要導(dǎo)入的源文件路徑(默認為當(dāng)前文件夾)

需要注意的地方:

1,不需要進入mongo命令行之后,就可以直接使用上面的2個導(dǎo)入導(dǎo)出命令。

2,導(dǎo)入導(dǎo)出的json文件,你不要隨意換行,導(dǎo)出來的就是一行一條數(shù)據(jù),你就原封不動的給修改完直接保存,不要換行。不要使用txt這么low的編輯器啦,換個高級點的編輯器吧。

最后,附上這個命令的help說明圖

mongoimport 導(dǎo)入的help信息展示如下

MongoDB使用mongoexport和mongoimport命令,批量導(dǎo)出和導(dǎo)入JSON數(shù)據(jù)到同一張表的實例

mongoexport 導(dǎo)出的help信息展示如下

MongoDB使用mongoexport和mongoimport命令,批量導(dǎo)出和導(dǎo)入JSON數(shù)據(jù)到同一張表的實例

另:

  • -f, --fields:代表集合中的字段,可以根據(jù)設(shè)置選擇導(dǎo)出的字段;
  • --type:代表導(dǎo)出輸出的文件類型,包括csv和json文件;
  •  --skip:跳過指定數(shù)量的數(shù)據(jù);
  • --limit:讀取指定數(shù)量的數(shù)據(jù)記錄;
  • --sort:對數(shù)據(jù)進行排序,可以通過參數(shù)指定排序的字段,并使用 1 和 -1 來指定排序的方式,其中 1 為升序排列,而-1是用于降序排列,如sort({KEY:1})。
#導(dǎo)出類型為json,數(shù)據(jù)庫:mapdb,集合:bike 字段:bikeId,lat,lng,current_time,source ,條件為source字段為ofo第一條數(shù)據(jù)
mongoexport --port 27030 -u sa -p Expressin@0618 -d mapdb -c bike -f bikeId,lat,lng,current_time,source --type=json -o bike.csv --query='{"source":"ofo"}' --limit=1
#導(dǎo)出類型為csv,數(shù)據(jù)庫:mapdb,集合:bike 字段:bikeId,lat,lng,current_time,source ,條件為source字段為ofo第一條數(shù)據(jù)
mongoexport --port 27030 -u sa -p Expressin@0618 -d mapdb -c bike -f bikeId,lat,lng,current_time,source --type=csv -o bike.csv --query='{"source":"ofo"}' --limit=1

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對億速云的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI