MongoDB导出导入

本文介绍了MongoDB数据导出导入的两种方法。一是使用mongodump和mongorestore,导出为二进制文件,效率高;二是使用mongoexport和mongoimport,导出文件可读,方便二次处理。同时详细说明了两种方法的参数,如连接地址、端口、账号密码等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、使用mongodump,mongorestore导出导入

./mongodump -h 127.0.0.1:27017 -d dbname -c collectionName -o /home/user/export  -q '{"id":1}'
./mongorestore -u username -p password -h 127.0.0.1:27017 -d dbname -c collectionName /home/user/export/collectionName.bson

特点:1.导出为二进制文件
2.效率高,每秒10万左右

详细参数说明
-h,–host :代表远程连接的数据库地址,默认连接本地Mongo数据库;
–port:代表远程连接的数据库的端口,默认连接的远程端口27017;
-u,–username:代表连接远程数据库的账号,如果设置数据库的认证,需要指定用户账号;
-p,–password:代表连接数据库的账号对应的密码;
–authenticationDatabase:加密数据库名
-d,–db:代表连接的数据库;
-c,–collection:代表连接数据库中的集合;
-f, --fields:代表集合中的字段,可以根据设置选择导出的字段;
–type:代表导出输出的文件类型,包括csv和json文件;
-o, --out:代表导出的文件名;
-q, --query:代表查询条件;
–skip:跳过指定数量的数据;
–limit:读取指定数量的数据记录;
–sort:对数据进行排序,可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而-1是用于降序排列,如sort({KEY:1})。

二、使用mongoexport,mongoimport导出导入

./mongoexport --port 27017 -u username -p password -d dbname -c collectionName -f id,name --type=csv -o /home/user/export/collectionName.csv --query='{"id":1}'
./mongoimport --port 27017 -u username -p password -d dbname -c collectionName  --type=csv --file /home/user/export/collectionName.csv

特点:1.导出文件可读,方便进行二次处理
2.效率较高,每秒5万左右

详细参数说明
h,–host :代表远程连接的数据库地址,默认连接本地Mongo数据库;
–port:代表远程连接的数据库的端口,默认连接的远程端口27017;
-u,–username:代表连接远程数据库的账号,如果设置数据库的认证,需要指定用户账号;
-p,–password:代表连接数据库的账号对应的密码;
-d,–db:代表连接的数据库;
-c,–collection:代表连接数据库中的集合;
-f, --fields:代表导入集合中的字段;
–type:代表导入的文件类型,包括csv和json,tsv文件,默认json格式;
–file:导入的文件名称
–headerline:导入csv文件时,指明第一行是列名,不需要导入;

### MongoDB 数据导入导出方法与工具 #### 使用 `mongodump` 和 `mongorestore` `mongodump` 是一种用于从 MongoDB 数据库中读取数据并生成 BSON 文件的备份工具。它可以用来创建整个数据库或者特定集合的数据副本,非常适合于小型至中型规模的数据备份场景[^4]。 以下是使用 `mongodump` 的基本命令结构: ```bash mongodump --host <dbhost> --db <dbname> --username <user> --password <password> --out <output_directory> ``` 执行此命令后,会将指定数据库中的所有数据保存到目标目录下的子文件夹中。如果需要针对某个具体集合操作,则可以附加参数 `--collection=<collection_name>` 来限定范围。 相对应地,当需要把通过 `mongodump` 创建的备份重新加载回 MongoDB 实例时,可利用其配套工具 `mongorestore` 完成这一过程。下面是一个典型的调用方式实例: ```bash mongorestore --host <dbhost> --db <dbname> --collection <collection_name> --dir <path_to_backup_files> --username <user> --password <password> ``` 这里需要注意的是,在实际应用过程中可能还需要考虑网络延迟、存储空间等因素的影响;对于超大规模的数据集而言,单纯依赖这些基础命令或许无法满足性能需求,此时应当探索更高级别的配置选项或是采用分片集群架构来优化流程效率[^5]。 #### 利用 `mongoimport` 及 `mongoexport` 除了上述基于二进制格式(BSON)的操作手段之外,MongoDB 还另外准备了一套面向文本形式(如 JSON、CSV 或 TSV)处理的服务——即 `mongoimport` 和 `mongoexport` 组合。它们允许开发者更加灵活便捷地完成跨平台间不同类型文档之间的转换工作[^2]。 例如要将以 CSV 表格样式呈现出来的记录迁移到 NoSQL 存储引擎内部去的话,那么只需简单编写如下脚本即可实现自动化迁移任务: ```bash mongoimport --type csv --file data.csv --headerline --db testDb --collection contacts ``` 而反过来要是想提取某张表里面部分字段出来形成新的平面文件供其他程序分析解读之用呢?那就可以借助另一个兄弟产品来做这件事啦! ```bash mongoexport --db testDb --collection contacts --fields name,email --type=csv --out contact-info.csv ``` 以上两种途径各有千秋,前者侧重于保持原始对象层次关系不变的同时快速填充大量初始内容进去;后者则强调易读性和互操作性方面优势明显一些[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值