欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 游戏 > Mongo导入导出详解

Mongo导入导出详解

2025/2/22 2:21:06 来源:https://blog.csdn.net/mqiqe/article/details/145711685  浏览:    关键词: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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词