mongodb提供了
mongodump
和mongorestore
,mongoexport
和mongoimport
两套机制进行数据备份和恢复,其中mongodump主要进行整库备份,mongoexport则主要进行数据集导出。
一、MongoDB数据导入与导出
1、导出工具:mongoexport
(1)概念:
mongoDB 中的 mongoexport 工具可以把一个 collection 导出成JSON
格式或CSV
格式的文件。可以通过参数指定导出的数据项,也可以根据指定的条件导出数据。
(2)语法:
mongoexport -d dbname -c collectionname -o file --type json/csv -f field
参数说明:
-d:数据库名-c:collection数据集名
-o:输出的文件名
--type:输出的格式,默认为 json
-f:输出的字段,如果 --type 为 csv ,则需要加上 -f "字段名"
(3)示例:
sudo mongoexport -d mongotest -c users -o /path/mongoDB/users.json --type json -f "_id,user_id,user_name,age,status"
带查询条件:--query
mongoexport --host 127.0.0.1 --port 27017 --db rongxin_credit --collection collect.data --query '{"tId": "63313fc4971d124a882d0209"}' --fields '_id,familyCode,creditCode,collectVersion,type,collectId,data,groupId' --out rongxin_credit2404181600.json
2、数据导入:mongoimport
(1)语法:
mongoimport -d dbname -c collectionname --file filename --headerline --type json/csv -f field
参数说明:
-d:数据库名-c:collection名
--type:导入的格式默认json
-f:导入的字段名
--headerline:如果导入的格式是csv,则可以使用第一行的标题作为导入的字段
--file:要导入的文件
(2)示例:
sudo mongoimport -d mongotest -c users --file /home/mongodump/articles.json --type json
二、MongoDB备份与恢复
1、MongoDB数据库备份
(1)语法:
mongodump -h dbhost -d dbname -o dbdirectory
参数说明:
-h:MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017
-d:需要备份的数据库实例,例如: wx_applet
-o:备份的数据存放位置,例如:/tmp/mongodb/,当然该目录需要提前建立,这个目录里面存放该数据库实例的备份数据。
(2)实例:
mkdir -p /tm/mongodb
./mongodump -h 192.168.2.182:27017 -d wx_applet -o /tmp/mongodb/data.dmp
2、MongoDB数据库恢复
(1)语法:
mongorestore -h dbhost -d dbname --dir dbdirectory
参数说明:
-h:MongoDB所在服务器地址
-d:需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如 test2
--dir:备份数据所在位置,例如:/home/mongodump/itcast/
--drop:恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用!
(2)实例:
将备份的数据库文件 data.dmp 上传到新的 mongodb 服务器/tmp/mongodb/
目录下,执行命令:
./mongorestore -d wx_applet --dir /tmp/mongodb/data.dmp/wx_applet
需要认证密码的语句:
mongodump -h 127.0.0.1:27017 -d ssdb -o f:\data\ssdb170505 -u=admin -p=admin --authenticationDatabase=admin
评论区