window下数据库操作
进入mongodb/bin目录
D:\mongdb\bin
以上是我的安装目录,你需要找到你自己的安装位置并进入bin目录。
然后cmd进入该目录,如图:
在这里插入图片描述
找到.dat数据位置
例如,我想把 areas.dat 数据导入到仓库,复制该路径。
D:\mt-stack\dbs\areas.dat
cmd执行命令
导入命令:D:\mongdb\bin>mongoimport -d demo -c areas D:\mt-stack\dbs\areas.dat
导出命令:D:\mongdb\bin>mongoimport -d demo -c areas -o D:\mt-stack\dbs\areas.dat
linux下导入导出数据库
- 如果是采用压缩包的形式下载的,执行方式和window方法相同;
- 如果是采用yum等命令直接下载的可执行下面命令即可:
导入命令:mongoimport -d student -c demo D:\mt-stack\dbs\areas.dat
导出命令:mongoexport -d student -c demo -o D:\mt-stack\dbs\areas.dat
mongoimport:导入命令
demo:数据库名称
areas:Collections下的子数据库
D:\mt-stack\dbs\areas.dat:数据文件完整位置
注意:一定要在mongodb安装目录的bin目录下执行命令
本地和远程服务器的数据库的操作
- 如果是采用压缩包的形式下载的,要进入mongodb中的bin目录下运行这些命令;
- 如果是linux采用yum等命令直接下载的可执行下面命令即可:
- 如果你在window下配置了环境变量的话,也可以直接运行下面的命令的
mongoexport
导出用法
本地和远程服务器导出操作
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
举例:本地导出
//按分页导出
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
—— 127.0.0.1 ip地址(本地 或 服务器)
—— 27017 mongodb数据库的端口,默认值27017
—— appdb 数据库名称
—— T_TEST_DATA collections下的表的名称
—— appuser 如果设置登录名和密码,登录名
—— appuser@2016 如果设置登录名和密码,登录名
—— 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
skip skip条件
limit limit条件
sort sort条件
mongoimport
用法
本地和远程服务器 导入操作
mongoimport 支持将json或csv格式的数据文件导入到mongodb数据库,该命令与mongoexport结合使用。
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可指定并发运行,可提升一定效率。
参考数据
文件大小2.9G 采用 --mode=insert 用时3分钟15秒
使用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分钟。