当前位置: 首页 > news >正文

Mongo导入导出详解

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

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

1. 导出数据 (mongodump)

mongodump --host <hostname> --port <port> \
          --username <username> --password <password> \
          --db <database_name> \
          --collection <collection_name> \
          --out <output_directory>

常用参数:

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

2. 导入数据 (mongorestore)

mongorestore --host <hostname> --port <port> \
             --username <username> --password <password> \
             --db <target_database> \
             <input_directory>

常用参数:

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

二、JSON/CSV 导入导出

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

1. 导出为 JSON/CSV (mongoexport)

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)

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

mongoexport --db mydb --collection users --out users.json

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

mongoimport --db mydb --collection new_users --type csv --headerline --file users.csv

案例3:全库备份与恢复

# 备份
mongodump --db mydb --out /backup/20231001
# 恢复
mongorestore --db mydb_restored /backup/20231001/mydb

相关文章:

  • 【弹性计算】IaaS 和 PaaS 类计算产品
  • C# dynamic 关键字 使用详解
  • wps中的js开发
  • STM32 看门狗
  • mac相关命令
  • Linux环境Docker使用代理推拉镜像
  • DeepSeek R1 模型在架构上的优势
  • 【基础架构篇九】《DeepSeek模型版本管理:Git+MLflow集成实践》
  • VMware Workstation 17.0 Pro创建虚拟机并安装Ubuntu22.04与ubuntu20.04(双版本同时存在)《包含小问题总结》
  • Servlet中HttpServletRequest和HttpServletResponse的常用API
  • 一文读懂Docker之Dockerfile基本使用
  • 《手机装上DeepSeek R1,开启口袋里的AI超能力》
  • Android Studio:如何用一个store类管理事件、简化管理
  • 详解AbstractQueuedSynchronizer(AQS)源码
  • 考场考试监考系统
  • QT自定义扫描控件,支持任意方位拖动和拖动扫描范围。
  • 数据结构(查找)
  • Python高级语法之urllib
  • Android Studio打包APK
  • 数字化赋能,3D数字博物馆开启沉浸式体验
  • 上海启动万兆光网试点建设,助力“模速空间”跑出发展加速度
  • 顾家家居:拟定增募资近20亿元,用于家居产品生产线的改造和扩建等
  • 北上广深均宣布下调个人住房公积金贷款利率
  • 习近平抵达莫斯科对俄罗斯进行国事访问并出席纪念苏联伟大卫国战争胜利80周年庆典
  • 江苏省泰州市委常委、宣传部部长刘霞接受审查调查
  • 中方对原产印度进口氯氰菊酯实施反倾销措施,商务部回应