mongodb 导入导出

简介

mongodb提供了mongoexport/mongoimport以支持将数据表进行导入导出。
导入导出命令一般用于特殊的数据处理用途,由于不包含索引处理,且json格式无法支持所有bson类型,因此不适合用于重要数据的备份恢复。

参考文档

https://docs.mongodb.com/manual/reference/program/mongoimport/
https://docs.mongodb.com/manual/reference/program/mongoexport/

mongoexport用法

说明
mongoexport 支持将mongodb数据表导出为json或csv格式,可在导出时指定一定的查询条件实现过滤。
命令的执行要求当前用户对数据库有read权限;
在mongos或副本集上执行时,默认采用primary readperference选项,即优先从主库上读取。

示例用法

./mongoexport --host 127.0.0.1 --port 27017 -d appdb -c T_TEST_DATA -u appuser -p appuser@2016 -o export/T_TEST_DATA.json

参数说明

参数名参数值
host[h]主机
port端口
db[d]目标数据库
username[u]用户名
password[p]密码
authenticationDatabase鉴权数据库,不指定则使用database参数
collection[c]目标Collection
query[q]查询过滤条件,不指定则导出全表
out[o]目标输出文件
type格式类型,默认json
skipskip条件
limitlimit条件
sortsort条件

其他用法

//按分页导出
mongoexport -d test -c records --sort '{a: 1}' --limit 100 --skip 100 --out export.1.json

//按查询条件导出
mongoexport -d test -c records -q '{ a: { $gte: 3 } }' --out exportdir/myRecords.json

mongoimport用法

说明
mongoimport 支持将json或csv格式的数据文件导入到mongodb数据库,该命令与mongoexport结合使用。

命令的执行要求当前用户对数据库有readWrite权限;
导入命令要求在mongos或副本集主节点上执行。

示例用法

./bin/mongoimport --host 127.0.0.1 --port 27017 -d appdb -c T_TEST_DATA_1 -u appuser -p appuser@2016 --numInsertionWorkers 50 --file export/T_TEST_DATA.json

参数说明

参数名参数值
host[h]主机
port端口
db[d]目标数据库
username[u]用户名
password[p]密码
authenticationDatabase鉴权数据库,不指定则使用database参数
collection[c]目标Collection,不指定则采用文件名称
drop指定该选项,则导入前删除表
file目标导入文件
type格式类型,默认json
mode导入模式,有insert、upsert、merge,默认insert
numInsertionWorkers并发数

导入模式
upsert模式,会将已有数据替换;
merge模式,会将已有数据进行合并;

执行效率
使用insert的性能最高,建议使用;
在多核的环境中,通过numInsertionWorkers可指定并发运行,可提升一定效率。

参考数据

使用mongoexport 导出860W的数据记录,文件大小2.9G,共耗时10分钟

使用mongoimport 导入860W的数据记录,使用–mode=insert模式,用时3分钟15秒(numInsertionWorkers=50)
使用mongoimport 导入860W的数据记录,使用–mode=insert模式,用时5分钟(numInsertionWorkers=1)
使用mongoimport 导入860W的数据记录,使用–mode=upsert模式,用时45分钟(numInsertionWorkers=1)

使用mongodump 导出为40s,而mongorestore为4分钟。

    原文作者:MongoDB
    原文地址: https://www.cnblogs.com/littleatp/p/9095286.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞