Mongo导入导出详解

一、二进制导入导出(推荐)

适用场景:全量备份/恢复,保留索引和元数据

工具:mongodump 和 mongorestore

1. 导出数据 (mongodump)

bash 复制代码
mongodump --host <hostname> --port <port> \
          --username <username> --password <password> \
          --db <database_name> \
          --collection <collection_name> \
          --out <output_directory>

常用参数:

  • --gzip: 压缩输出
  • --query: 按条件导出数据
  • --authenticationDatabase: 认证数据库

2. 导入数据 (mongorestore)

bash 复制代码
mongorestore --host <hostname> --port <port> \
             --username <username> --password <password> \
             --db <target_database> \
             <input_directory>

常用参数:

  • --drop: 导入前清空集合
  • --gzip: 解压导入
  • --nsInclude: 指定导入的命名空间

二、JSON/CSV 导入导出

适用场景:跨平台数据交换,可读性强

工具:mongoexport 和 mongoimport

1. 导出为 JSON/CSV (mongoexport)

bash 复制代码
mongoexport --host <hostname> --port <port> \
            --username <username> --password <password> \
            --db <database_name> \
            --collection <collection_name> \
            --type json (或 csv) \
            --fields <field1,field2> \
            --out <output_file.json>

常用参数:

  • --query: 按条件导出(使用 JSON 格式)
  • --limit: 限制导出条数
  • --pretty: 格式化输出

2. 导入 JSON/CSV (mongoimport)

bash 复制代码
mongoimport --host <hostname> --port <port> \
            --username <username> --password <password> \
            --db <database_name> \
            --collection <collection_name> \
            --type json (或 csv) \
            --file <input_file.json>

常用参数:

  • --drop: 导入前清空集合
  • --headerline: CSV 文件包含表头
  • --upsert: 使用更新插入模式

三、注意事项

  1. 数据类型兼容性
    JSON 格式可能丢失 MongoDB 特有类型(如 Date, ObjectId),建议优先使用二进制格式。
  2. 索引处理
    mongoexport/import 不会保留索引,需手动重建;mongodump/restore 会保留索引。
  3. 大文件处理
    使用 --gzip 压缩可减少传输体积,处理大型数据时建议分片操作。
  4. 认证与权限
    确保用户对目标数据库有 readWrite 权限,使用 --authenticationDatabase 指定认证库。

四、示例场景

案例1:导出 users 集合到 JSON

bash 复制代码
mongoexport --db mydb --collection users --out users.json

案例2:从 CSV 恢复数据到新集合

bash 复制代码
mongoimport --db mydb --collection new_users --type csv --headerline --file users.csv

案例3:全库备份与恢复

bash 复制代码
# 备份
mongodump --db mydb --out /backup/20231001
# 恢复
mongorestore --db mydb_restored /backup/20231001/mydb
相关推荐
AI日报派送佬2 小时前
2026年10月14日AI行业日报|Gemini 4 Argon正式发布;小模型跨设备传播风险引发安全热议
网络·人工智能·openai·谷歌·deepseek·anthropic·ai日报
安易算力3 小时前
昇腾CANN算子开发与MindSpore部署调优实践:从Ascend C到模型推理全链路
网络·架构
余槐i3 小时前
PostgreSQL 函数索引报错 must be immutable:3种绕法与代价
数据库·后端·sql·postgresql·性能优化
数据库小学妹3 小时前
PostgreSQL表膨胀怎么办?autovacuum清不动的根因与排查命令
数据库·postgresql·表膨胀·mvcc·数据库运维
mister_guo3 小时前
MySQL-1267错误:排序规则冲突的原因与解决方案
数据库·mysql
骇客野人4 小时前
在麒麟操作系统上 分别安装 jdk1.8, 达梦数据库,redis ,memcache 的操作实施方案和步骤
数据库·redis·memcached
遇印记4 小时前
传输层,网络层
运维·服务器·网络·windows·学习
北京中科新远科技5 小时前
高速光模块上线验收实战:DOM、FEC、BER与端口计数器怎么一起看
服务器·网络·php
美狐美颜SDK开放平台6 小时前
直播APP如何实现美白滤镜功能?视频美颜SDK技术开发方案详解
前端·数据库·人工智能·音视频·美颜sdk·直播美颜sdk·视频美颜sdk