MongoDB導入導出和踩過的坑


從網上一搜,基本大概都是這樣的

導出:mongoexport --port 29050 -u zdha -p zdha1234 -d meerkat320 -c person --type=json -o /opt/roman/235-meerkat320-person.json

導入:mongoimport --port 27017 -u zdha -p zdha1234 -d meerkat-min -c person-320 --type=json --file /opt/roman/235-meerkat320-person.json

直接試了上面的導入語句,報錯:bash: mongoexport: command not found...

Q:bash: mongoexport: command not found...
A:如果你正在使用git bash,請使用以下命令
$ ./mongo

調整后,在241上測試導出:

./mongo mongoexport --port 27017 -u zdha -p zdha1234 -d meerkat-min -c car --type=json -o /opt/roman/235-meerkat320-car.json

以上語句存在的錯誤:
(1)mongo命令敲的不對
(2)默認是連本地,筆者而言就是192.168.89.9
所以修改過之后的就是:

./mongoexport -h 192.168.31.241 -port 27017 -u zdha -p zdha1234 -d meerkat-min -c car --type=json -o /opt/roman/235-meerkat320-car.json

too many positional arguments: [27017]

再調整:

./mongoexport -h 192.168.31.241:27017 -u zdha -p zdha1234 -d meerkat-min -c car --type=json -o /opt/roman/235-meerkat320-car.json

error connecting to db server: server returned error on SASL authentication step: Authentication failed.

最終調整,並成功了的命令(在241上執行的):

./mongoexport -h 192.168.31.241:27017 -u zdha -p zdha1234 --authenticationDatabase admin -d meerkat-min -c car --type=json -o /opt/roman/235-meerkat320-car.json

 

=================== 終於導出的好了=================

現在開始切換到測試的庫去,繼續在241上執行導出單表命令:

./mongoexport -h 192.168.31.235:29050 -u zdha -p zdha1234 --authenticationDatabase admin -d meerkat320 -c car --type=json -o /opt/roman/235-meerkat320-car.json

2021-05-25T15:57:06.046+0800 exported 78 records

 

下面開始准備吧測試環境導出的數據導入到開發環境:

./mongoimport -h 192.168.31.241:27017 -u zdha -p zdha1234 --authenticationDatabase admin -d meerkat-min -c car --type=json -o /opt/roman/235-meerkat320-car.json

error parsing command line options: unknown option "o"

導入語句指定的導入文件路徑,不能用 -o,而是直接跟着后面,如下:

./mongoimport -h 192.168.31.241:27017 -u zdha -p zdha1234 --authenticationDatabase admin -d meerkat-min -c car --type=json /opt/roman/235-meerkat320-car.json

2021-05-25T16:06:02.507+0800 imported 78 documents

可以看到已經導入成功了,如果立馬又重復執行一遍導入語句,會報錯,如下:
- E11000 duplicate key error collection: meerkat-min.car index: _id_ dup key: { : "a47bcde57508d073bbc5c9189bd1fafe" }

可以對導入語句做下優化,加上--upsert

./mongoimport -h 192.168.31.241:27017 -u zdha -p zdha1234 --authenticationDatabase admin -d meerkat-min -c car --type=json /opt/roman/235-meerkat320-car.json --upsert

 

單表的成功了,現在改成全庫的,由於全庫的就是“備份”的概念了,要使用./mongodump命令

導出:

./mongodump -h 192.168.31.235:29050 -u zdha -p zdha1234 --authenticationDatabase admin -d meerkat320 -o /opt/roman/235-meerkat320/

導入:

./mongorestore -h 192.168.31.241:27017 -u zdha -p zdha1234 --authenticationDatabase admin -d meerkat-min /opt/roman/235-meerkat320/meerkat320/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM