Mongo导入、导出

最近一段时间使用linux进行Mongo的数据导入导出,说一说遇到的一些坑:

MongoDB官网有推荐的工具(MongoDB Compass)网址为:https://www.mongodb.com/download-center/compass

由于其支持的认证机制中只有scram-sha-256,并没有对应的scram-sha-1(也许是因为是社区版免费的不支持的原因吧),导致你本地安装的,甚至是阿里云购买的mongo不能够通过GUI直连;


所以为决定采用Robo3T图形化的界面,简单清洁,对习惯使用关系数据库的同学来说更加通俗易懂;


查询支持命令和手工点击的方式;

但是如何将mongo以快速的方式导出数据,迁移到本地呢?

在阿里云上距离来说,默认是不支持外网直连的,并且也不推荐本机电脑通过GUI的方式直接生产环境的数据库,那如何将生产的数据导入到本地(尤其是只使用其中一些集合中的数据)?

1、阿里云官方推荐的是,通过阿里的集成工具来进行导入,导出:


对我们个人来说,第一次肯定是要搭建环境,编写脚本,耗时费力;

2、我采用的是,通过登录阿里云内网环境(你购买的云服务器),将该服务器加入mongoDB的访问的白名单

执行Mongo导入导出对应的命令即可:

将本地json数据导入到阿里云对应的mongo库中:

mongoimport --host xx.aliyuncs.com:6717 -u ruichar -p \$1 -d test -c colle_1 --file /opt/mongo/my.json

从阿里云Mongo中导出集合中的数据导本地:

mongoexport --host xx.aliyuncs.com:6717 -u ruichar -p \$1  -d test -c colle_1 --out /opt/mongo/export_test.json

参数解释:

--host Mongo的主机地址

6717 Mongo的主机地址开放的端口号

-u 登录Mongo的用户名

-p 登录Mongo的密码(注意假设我的密码是$1,由于出现特殊字符,需要在执行命令时进行转义:\$1)

-d 要操作的数据库,此处为 test

-c 要操作的集合,此处为colle_1 

--file 要导入的文件名

--out 要导出的文件名

对于全量备份和回复,参考对应的命令即可,此处不再详述;

3,尽量不要采用外网直连Mongo,存在数据安全泄漏的风险;GUI工具对查询操作很方便,但是对导入导出操作很麻烦;

你可能感兴趣的:(Mongo导入、导出)