最近一个项目使用mongodb,已经试运行了,但是中途表结构发生变化,所以需要远程导出数据,进行一定的修改然后再导入到新的数据库,这里笔记一下,防止忘记。
本来是个很简单的需求,但是主要工具居然要收费,所以决定使用mongodb自带的工具来实现。
1,再Ubuntu22.04上安装mongodb-org (20240807测试通过)
Import the MongoDB public GPG key:
curl -fsSL https://www.mongodb.org/static/pgp/server-6.0.asc | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/mongodb-6.gpg
Add the MongoDB repository
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
更新apt并安装
sudo apt update
sudo apt install mongodb-org
sudo apt-get install -y mongodb-database-tools <-只安装工具
因为只是需要导入导出工具,所以不启动服务,但是这里备注一下,万一以后要使用到
sudo systemctl enable --now mongod
sudo systemctl enable mongod
sudo service mongod start
sudo service mongod status
mongosh <- 命令行进入
确认导入导出工具
mongoexport --version
mongoimport --version
完整的命令
mongoexport --uri="mongodb://username:password@remote_host:remote_port/database" --collection=collection_name --out=output_file.json
mongoimport --uri="mongodb://username:password@remote_host:remote_port/database" --collection=collection_name --file=input_file.json
导入的时候,如果没有集合会自动创建集合,这点非常有帮助。接下来就是对export出来的数据,通过程序或者手工编辑之后重新导入到数据库。