码迷,mamicode.com
首页 > 数据库 > 详细

MongoDB备份恢复与导出导入

时间:2017-06-06 23:28:17      阅读:273      评论:0      收藏:0      [点我收藏+]

标签:分享   com   9.png   ups   账号   form   mil   路径   文件名   

说明:本文所有操作均在win7下的MongoDB3.4.4版本中进行。

一、备份与恢复

1. 备份:

mongodump -h IP --port 端口 -u 用户名 -p 密码 -d数据库 -o 文件路径

(将使用某个用户账号将某个mongodb服务器上的某个数据库备份到某个路径下)

如果无需指定用户,可以去掉-u-p;如果导出本机的数据库,可以去掉-h;如果是默认端口,可以去掉--port

如果想导出所有数据库,可以去掉-d如果只想备份某个集合,应在”-d 数据库”后添加”-c 集合名”选项。

备份单个集合示例:

技术分享

如果想根据查询条件来备份数据,则应该添加’-q 查询条件’选项。

查询条件备份示例:

技术分享

(mongodb3.4.4查询条件使用单引号会报错:query is not in proper format

2. 恢复:

mongorestore -h IP --port 端口 -u 用户名 -p 密码 -d数据库 --drop 文件路径

--drop:恢复的时候,先删除当前数据库数据,然后恢复备份的数据(恢复后,备份后添加、修改的数据都会被删除,慎用!

若不使用该选项,则恢复过程可能会出现很多键重复的报错,键重复的数据将不被恢复)

如果只想备份某个集合,应在”-d 数据库”后添加”-c 集合名选项,备份某个集合的时候需要指定具体的bson文件,而不能只是指定文件目录。

恢复单个集合示例:

技术分享

 

二、导出与导入

1. 导出:

mongoexport -h IP --port 端口 -u 用户名 -p 密码 -d数据库 -c 表名 -f 字段名 -q 查询条件 --type=csv -o 文件路径

mongoexport导数据时一定要使用-c参数指定需要导出的集合,所以-o参数要指定一个具体的文件名而不能是目录。

-f:只导出指定的字段,多个字段之间使用英文逗号分隔。

--type:指定导出文件的格式。目前只支持jsoncsv,指定导出csv格式时一定需要使用-f参数指定需要导出的字段,csv文件第一行为字段名标题。

技术分享

2. 导入:

1)导入json文件:

mongoimport -h IP --port 端口 -u用户名 -p 密码 -d 数据库 -c 表名 --upsert --drop 文件名

--upsert:存在则更新,不存在则插入。若只是导入部分字段,则将其换成--upsertFields参数并指定字段名列表。

技术分享

2)导入csv文件:
mongoimport -h IP --port 端口 -u用户名 -p 密码 -d 数据库 -c 表名 --type=csv --headerline --upsert --drop 文件名

--headerline:去除csv文件中的标题行,或使用-fields参数指定字段名,但这两个参数不能同时使用。

技术分享

MongoDB备份恢复与导出导入

标签:分享   com   9.png   ups   账号   form   mil   路径   文件名   

原文地址:http://www.cnblogs.com/wujuntian/p/6953989.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!