企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
Mongo数据管理备份导入导出 [TOC] # 第1章 数据备份mongodump MongoDB提供了可执行文件mongodump用于数据备份,mongodump的原理是对MongoDB进行普通查询,然后写入文件中使用命令 ``` ./mongodump -d test -o /data/mongobackup/ ``` mongodump也可以使用-q参数增加查询条件,只导出满足条件的文档,使用命令 ``` mongodunmp -d test -c user -q "{name: 'test'}" -o /data/mongobackup/ ``` 注意-q参数值的标点符号,否则会报错positional arguments not allowed 更多mongodump的参数使用命令mongodump --help查看. # 第2章 数据恢复mongorestore mongorestore可执行文件与mongodump搭配使用,用于恢复数据库. mongorestore使用的数据文件就是mongodump备份的数据文件,使用命令如下 ``` mongorestore -d test /data/mongobackup/test --drop ``` 使用/data/mongobackup/test/路径下的BSON和JSON文件恢复数据库test, --drop参数表示如果已经存在test数据库则删除原数据库,去掉--drop则恢复数据库时与原数据库合并. # 第3章 数据导出mongoexport mongodump主要针对库的备份,MongoDB还提供了一种针对集合的备份工具:可执行文件mongexport可以指定导出的格式,还可以指定导出的字段,比较灵活. ## 3.1 导出JSON格式 导出test数据库中user集合到目录/data/mongobackup/下的user.json文件中,查看user.json文件发现里面的数据是JSON格式的. ``` mongoexport -d test -c user -o /data/mongobackup/user.json ``` mongonexport也可以使用-q参数增加查询条件 ## 3.2 导出CSV格式 ``` mongoexport -d test -c user --csv -f id,name,age -o /data/mongobackup/user.csv ``` 导出test数据库中user集合到目录/data/mongobackup下的user.csv文件中. -f参数用于指定只导出id,name以及age字段.因为CSV是表格类型的,对于内嵌文档太深的数据导出效果不是很好,所以一般会指定某些字段导出. # 第4章 数据导入mongoimport 数据导入工具mongoimport与mongoexport配合使用,使用mongoexport导出的备份文件进行数据恢复. ## 4.1 JSON格式导入 ``` mongoimport -d test -c user /data/mongobackup/user.json --upsert ``` 使用备份文件/data/mongobackup/user.json导入数据到test数据库的user集合中,--upsert表示更新现有数据,如果不使用--upsert,则导入时已经存在的文档会报_id重复,数据不再插入.也可以使用--drop删除原数据. ## 4.2 CSV格式导入 ``` mongoimport -d test -c user --type csv --headrline --file /data/mongbobackup/user.csv ``` 导入/data/mongobackup/user.csv文件中的数据到test的user集合. --headerline指明不导入第一行,CSV格式的文件第一行为列名.