MongoDB数据迁移
因为旧的服务器要到期了,续费又很贵,所以需要把旧服务器的业务全部迁移到新服务器上,简单研究了一下MongoDB的数据迁移,导入导出和备份的方法。
MongoDB在新版本中不再提供MongoDB Database Tools,因此需要自行下载工具包,解压到MongoDB的bin目录下。
下载地址:https://www.mongodb.com/try/download/database-tools
数据备份与恢复
mongodump
mongodump用于将数据库中的数据导出成BSON二进制文件,此工具对数据不会造成损坏。
常用参数:
- -h/–host:数据库的主机名
- -u/–username:用户名
- -p/–password:密码
- -d/–db:数据库名
- -c/–collection:集合名
1 | 该命令会将MongoDB中所有数据库导出到当前目录下的dump目录 |
mongorestore
mongorestore用于将mongodump导出的BSON文件恢复到数据库里。
常用参数:
- -h/–host:数据库的主机名
- -u/–username:用户名
- -p/–password:密码
- -d/–db:数据库名
- -c/–collection:集合名
- -dir:BSON文件的目录
- -drop:恢复前清空数据库
1 | mongorestore -h diaoan.xyz -u *** -p *** -dir . |
数据导出与导入
mongoexport
mongoexport可以将数据库中的文件以Excel/CSV/JSON的格式导出。(个人认为Navicat更好用)
常用参数:
- -d/–db:数据库名
- -c/–collection:集合名
- -o:导出的文件名
- -q:查询条件
mongoimport
mongoimport将Excel/CSV/JSON文件导入进数据库,不推荐,如果数据里有JSON对象,导入进数据库后,会变成JSON字符串。
数据克隆
cloneCollection
cloneCollection方法可以将远程服务器上的MongoDB数据复制到本地数据库。该方法在MongoDB4.2版本后被废除。
参数:
from:要复制的数据库地址
collection:本地数据库的集合名
1 | db.cloneCollection(':27017', 'profiles',) |