1,导出工具:mongoexport
# 语法:
mongoexport -d "数据库名" -c "表名" -o "要保存的文件名" --type "指定保存的数据文件类型"(json/csv) -f "指定要导出的字段"
参数说明:
-d :数据库名
-c :collection名
-o :输出的文件名
--type : 输出的格式,默认为json
-f :输出的字段,如果-type为csv,则需要加上-f "字段名"
注意:默认导出type类型为json,如果指定类型为csv,主要指定-f指定字段
# 例:把familyTv数据库中的DingData表的数据导出到当前位置,并保存到DingData.json中
mongoexport -d familyTv -c DingData -o DingData.json
效果如下:(导出成功)

2,数据导入:mongoimport
# 语法:
mongoimport -d "指定要被导入数据的数据库名" -c "指定表名" --file "指定被导入的文件名" --headline
--type "指定类型" -f "指定字段"
参数说明:
-d :数据库名
-c :collection名
--type :导入的格式默认json
-f :导入的字段名
--headerline :如果导入的格式是csv,则可以使用第一行的标题作为导入的字段
--file :要导入的文件
# 例:
这里我把DingData表删除了,因为我已经导出了数据,这里用于验证是否导入成功
mongoimport -d familyTv -c DingData --file DingData.json
效果如下:(导入成功)

3,数据备份:mongodump
# 语法:
mongodump -h "数据库所在ip地址" -d "数据库名称" -o "保存文件的目录"
参数说明:
-h: MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017
-d: 需要备份的数据库实例,例如:test
-o: 备份的数据存放位置,例如:/home/mongodump/,当然该目录需要提前建立,这个目录里面存放该数据库实例的备份数据。
例:
# 将本地数据库familyTv的数据保存到当前目录下
mongodump.exe -h 127.0.0.1:27017 -d familyTv -o ./
效果如下:(备份成功)

4,数据恢复:mongorestore
# 语法:
mongorestore -h "数据库所在ip" -d "要保存数据的数据库名称" --dir "存放数据的目录"
参数或名:
-h: MongoDB所在服务器地址
-d: 需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2
--dir: 备份数据所在位置,例如:/home/mongodump/
--drop: 恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用!
# 例:
mongorestore -h 127.0.0.1 -d familyTv --dir familyTv
效果如下:(备份成功)

注意!!!!: 数据库迁移需要使用备份(mongodump)与恢复(mongorestore)语法,如果数据库没有开启权限验证,则直接使用命令即可;
如果开启了验证登录,是无法直接备份和恢复数据库的,报如下错误:error reading database: command listCollections requires authentication
解决方案
- 添加:
-u <username> -p=<password> - 添加:
--authenticationDatabase admin
MongoDB数据导出、导入、备份与恢复

博客介绍了MongoDB的数据操作,包括使用mongoexport导出数据、mongoimport导入数据、mongodump备份数据和mongorestore恢复数据,且各项操作均成功。同时提醒数据库迁移需用备份和恢复语法,开启验证登录时无法直接备份恢复,会报错并给出解决方案。
4484

被折叠的 条评论
为什么被折叠?



