之前有命令如cloneCollection、cloneDatabase,随着版本更新,逐渐被废弃,目前官方推荐的导出导入方式为mongoexport和mongoimport两个命令
以下方式适用于使用docker部署mongodb的方式
mongoexport
# 进入容器,注意是进入容器,而不启动mongo shell
>>> docker exec -it mongo /bin/sh
# 由于数据库使用了用户名密码验证,所以多了authenticationDatabase、username、password三个参数
>>> mongoexport --collection=web_market_information --db=web_data --authenticationDatabase=web_data --username=user --password=12345 --out=web_market_information.json
2021-04-25T02:28:51.196+0000 connected to: mongodb://localhost/
2021-04-25T02:28:51.221+0000 exported 1229 records
>>> exit
# 将容器中的文件拷贝出来
>>> docker cp mongo:/web_market_information.json .
数据转移
如果是两台服务器,则需要将文件移动至目标服务器
>>> scp web_market_information.json pi@10.8.15.51:/home/pi
pi@10.8.15.51's password:
web_market_information.json 100% 1171KB 40.7MB/s 00:00
mongoimport
# 将文件拷贝至容器
>>> docker cp web_market_information.json mongo0:/
# 由于数据库使用了用户名密码验证,所以多了authenticationDatabase、username、password三个参数
# 进入容器,注意是进入容器,而不启动mongo shell
>>> docker exec -it mongo /bin/sh
>>> mongoimport --authenticationDatabase=web_data --username=user --password=12345 --collection=web_market_information.json --db=web_data --file=web_market_information.json
2021-04-25T03:01:07.650+0000 connected to: mongodb://localhost/
2021-04-25T03:01:08.209+0000 1229 document(s) imported successfully. 0 document(s) failed to import.
注意:导入副本集的操作需要在副本集的主节点进行
参考:
https://docs.mongodb.com/v4.2/reference/program/mongoimport/
https://docs.mongodb.com/v4.2/reference/program/mongoexport/