说明:本文全部操做均在win7下的MongoDB3.4.4版本中进行。mongodb
1、备份与恢复数据库
1. 备份:json
mongodump -h IP --port 端口 -u 用户名 -p 密码 -d数据库 -o 文件路径服务器
(将使用某个用户帐号将某个mongodb服务器上的某个数据库备份到某个路径下)rest
若是无需指定用户,能够去掉-u和-p;若是导出本机的数据库,能够去掉-h;若是是默认端口,能够去掉--port;orm
若是想导出全部数据库,能够去掉-d。若是只想备份某个集合,应在”-d 数据库”后添加”-c 集合名”选项。blog
备份单个集合示例:索引
这个命令执行以后在D:\mongodb\backup目录会生成一个'wjt'文件夹,里面两个文件:friend.bson和friend.metadata.json,前者存储集合数据,后者存储集合的元数据,如索引信息等。form
若是想根据查询条件来备份数据,则应该添加’-q 查询条件’选项。class
查询条件备份示例:
(mongodb3.4.4查询条件使用单引号会报错:query is not in proper format)
2. 恢复:
mongorestore -h IP --port 端口 -u 用户名 -p 密码 -d数据库 --drop 文件路径
--drop:恢复的时候,先删除当前数据库数据,而后恢复备份的数据
(恢复后,备份后添加、修改的数据都会被删除,慎用!若不使用该选项,则恢复过程可能会出现不少键重复的报错,键重复的数据将不被恢复)
若是只想备份某个集合,应在”-d 数据库”后添加”-c 集合名”选项,备份某个集合的时候须要指定具体的bson文件,而不能只是指定文件目录。
恢复单个集合示例:
导入成功以后,不只数据能够导入,索引信息也会导入。
2、导出与导入
1. 导出:
mongoexport -h IP --port 端口 -u 用户名 -p 密码 -d数据库 -c 表名 -f 字段名 -q 查询条件 --type=csv -o 文件路径
mongoexport导数据时必定要使用-c参数指定须要导出的集合,因此-o参数要指定一个具体的文件名而不能是目录。
-f:只导出指定的字段,多个字段之间使用英文逗号分隔。
--type:指定导出文件的格式。目前只支持json和csv,指定导出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参数指定字段名,但这两个参数不能同时使用。