最近一个项目使用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出来的数据,通过程序或者手工编辑之后重新导入到数据库。

最后修改日期: 2024年8月7日

作者