MongoDB学习——数据库的备份、还原、导入及导出

MongoDB官方提供了两套数据导入导出工具,一般来说,进行整库导出导入时使用mongodump和mongorestore,这一对组合操作的数据是BSON格式,进行大量dump和restore时效率较高。
进行单个集合导出导入时使用mongoexport和mongoimport,这一对组合操作的数据是JSON格式,可读性较高。

1. mongodump(备份)及mongorestore(还原)

说明:

mongodump是一个用于导出二进制数据库内容的实用工具,它导出的bson文档中只会包含着集合文档等信息,不包括索引信息(索引信息会单独导出),所以还原后,索引必须重建(这个不用担心,使用mongorestore会自动重建mongodump生成的索引信息)。3.4版本中添加了对只读视图的支持。

参数(以下仅列举常用参数,更多请参考help,下同):
命令全称参考释义
-d–db <database>指定要还原的数据库。如果不指定,restore将会还原dump记录的所有数据库,并会覆盖现有数据库数据
-c–collection <collection>指定要还原的集合。如果不指定,mongorestore会从文件名中读取识别集合名称(如果有扩展名则会省略扩展名)
–drop还原集合之前会先从目标数据库中删除集合,不会删除不在备份中的集合。
–gzip3.2版本+,从压缩文件中还原
<path>要还原的数据文件路径,该参数必须是mongorestore命令的最后一个参数

实例:

mongorestore --drop -d mytest -c user ~/bk/mytest/user.bson

2. mongoexport(导出)及mongoimport(导入)

2.1 mongoexport

参数:
命令全称默认值参考释义
–help查看mongoexport的使用帮助
–version查看mongoexport的版本号
-d–db <database>指定要在哪个数据库上运行该命令
-c–collection <collection>指定要导出的集合
-f–fields <field1[,field2]>指定导出时只导出一个或多个字段,导出多个时,需要使用逗号分隔;当字段中有空格时,需要用英文引号括起来。
-q–query <JSON>提供查询文档作为导出数据源
–type<string>json指定要导出的文件类型,可选值:json,csv
-o–out <file>指定要导出的文件路径(含文件名),如果不指定,则会导出为标准输出(例如stdout)

实例:

mongoexport -d mytest -c user -o ~/bk/user.json

2.2 mongoimport

参数:
命令可选值参考释义
–ignoreBlanks忽略要导入文件中的空字段,如果不指定该参数,则默认会读取空字段并创建
-type <json|csv|tsv>json,csv,tsv要导入的文件类型,另外支持tsv
–headerline使用第一行作为字段名称
-mode <insert|upsert|merge>insert(插入),upsert(替换数据库中的文档),merge(合并)指定导入过程中,如何应对数据库文档与导入文件中的文档匹配(默认会使用_id字段对比)的情况

其他参数与mongoexport基本一致
实例 :

mongoimport --drop -d mytest -c user --file ~/user.json
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值