washpost/mongo-vandelay该镜像是一个基于MongoDB官方镜像构建的功能扩展版本,在保留原生MongoDB数据库核心功能的基础上,集成了完整的数据导入/导出工具链,旨在简化MongoDB数据的备份、迁移及跨系统数据交换流程,适用于需要频繁进行数据导入导出操作的场景。
mongoimport命令,支持导入JSON、CSV、TSV等格式数据至指定数据库集合,支持字段映射、数据类型指定及批量导入mongoexport命令,支持将MongoDB集合数据导出为JSON、CSV、TSV格式文件,可指定导出字段、筛选条件及数据格式启动包含导入/导出功能的MongoDB容器,默认监听27017端口:
bashdocker run -d \ --name mongo-import-export \ -p 27017:27017 \ -v /local/mongo/data:/data/db \ # 持久化存储数据库文件 -v /local/import-export:/data/ie \ # 挂载导入导出文件目录 mongo-import-export
将本地JSON文件导入至指定数据库集合:
bash# 导入JSON数组文件(文件路径为容器内挂载路径) docker exec -it mongo-import-export mongoimport \ --uri "mongodb://localhost:27017/mydatabase" \ # 目标数据库地址 --collection users \ # 目标集合名称 --file /data/ie/users.json \ # 容器内JSON文件路径 --jsonArray # 声明文件为JSON数组格式(单文档JSON无需此参数)
导入包含表头的CSV文件至数据库集合:
bashdocker exec -it mongo-import-export mongoimport \ --uri "mongodb://localhost:27017/mydatabase" \ --collection products \ --type csv \ # 指定文件格式为CSV --file /data/ie/products.csv \ --headerline # 使用CSV首行作为字段名
将指定集合数据导出为JSON文件:
bashdocker exec -it mongo-import-export mongoexport \ --uri "mongodb://localhost:27017/mydatabase" \ --collection orders \ --out /data/ie/orders_export.json # 容器内导出文件路径
导出集合中特定字段数据为CSV文件:
bashdocker exec -it mongo-import-export mongoexport \ --uri "mongodb://localhost:27017/mydatabase" \ --collection users \ --type csv \ --fields name,email,register_date \ # 指定导出字段列表 --out /data/ie/users_export.csv
当MongoDB启用身份验证时,需在连接URI中指定认证信息:
bash# 启动带身份验证的容器 docker run -d \ --name mongo-import-export-auth \ -p 27017:27017 \ -v /local/mongo/data:/data/db \ -v /local/import-export:/data/ie \ -e MONGO_INITDB_ROOT_USERNAME=admin \ # 管理员用户名 -e MONGO_INITDB_ROOT_PASSWORD=securepass \ # 管理员密码 mongo-import-export # 带认证的导出示例(需指定authSource为管理员数据库) docker exec -it mongo-import-export-auth mongoexport \ --uri "mongodb://admin:securepass@localhost:27017/mydatabase?authSource=admin" \ --collection sensitive_data \ --out /data/ie/sensitive_export.json
| 参数/环境变量 | 说明 | 示例 |
|---|---|---|
--uri | MongoDB连接地址,格式为mongodb://[user:pass@]host:port/dbname?authSource=xxx | mongodb://admin:pass@localhost:27017/mydb?authSource=admin |
--collection | 指定操作的集合名称 | --collection user_profiles |
--file(mongoimport) | 待导入文件的容器内路径 | --file /data/ie/import_data.csv |
--out(mongoexport) | 导出文件的容器内路径 | --out /data/ie/export_data.json |
--type | 指定导入/导出文件格式(json/csv/tsv) | --type csv |
MONGO_INITDB_ROOT_USERNAME | 初始化数据库管理员用户名(环境变量) | -e MONGO_INITDB_ROOT_USERNAME=admin |
MONGO_INITDB_ROOT_PASSWORD | 初始化数据库管理员密码(环境变量) | -e MONGO_INITDB_ROOT_PASSWORD=secure123 |
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务