我们在做数据迁移、定期备份或者临时分析时,经常离不开 MongoDB 的原生命令行工具。相比图形化客户端,Shell 脚本更灵活,适合自动化流程。核心主要依赖两个命令:mongoexport 用于导出数据,mongoimport 用于恢复数据。
导出命令详解
导出时最常用的是 mongoexport。基本结构包含主机地址、端口、认证信息以及目标集合。参数虽然多,但记住几个核心选项就能应付大部分场景。
-h/--host:数据库服务器 IP。--port:连接端口,默认 27017。-u/--username:认证用户名。-p/--password:密码(注意安全风险)。-d/--db:目标数据库名。-c/--collection:要导出的集合名称。-f/--fields:指定导出的字段列表。-q/--query:JSON 格式的查询条件,用于筛选数据。--csv:导出为 CSV 格式,否则默认为 JSON。-o/--out:输出文件路径。
实战示例
直接运行这条命令即可将指定库表导出到本地:
mongoexport -d tank -c users -o /home/zhangy/mongodb/tank/users.dat
如果需要带认证并导出特定字段,可以这样写:
mongoexport -h 172.16.6.13 --port 27017 -u root -p xxx -d game_server -c game_ip_list_config --file game_ip_list_config.json
如果是业务系统需要导出 CSV 格式方便 Excel 处理,记得加上 --csv 参数:
mongoexport -h 172.16.6.13 -d iboxpay_css -c customerBind -o /data01/customerBind.dat --csv
安全提示
这里有个坑,生产环境最好避免把密码直接写在命令行里。因为 Shell 历史记录会保存明文密码,容易被泄露。建议通过环境变量传递密码,或者使用交互式输入。
导入数据
导出后如果需要还原,对应的命令是 mongoimport。用法和导出类似,只是方向相反。例如从 JSON 文件恢复到集合:
mongoimport -u root -p xxx --db game_server --collection game_ip_list_config --file game_ip_list_config.json
掌握这两个工具,日常的数据维护工作能省不少心。遇到具体报错时,先检查网络连接和权限配置,通常问题就出在这些基础环节上。

