4

QQ20191222-002812@2x.png

学习使用 MongoDB 官方提供的免费云数据库,初学者的学习利器,手把手图文教程。

1. 云数据库 Atlas

如果你想在本地安装 MongoDB 可以去官网下载,MongoDB 支持 Windows、OSX、Linux,虽然你可以在你的电脑上下载安装 MongoDB,但作为初学研究学习,其实没必要这么折腾,除非你天天在本机用。所以,一个更好的使用方法就是云MongoDB,云 MongoDB 就是把 MongoDB 安装在远程的服务器上,并对外暴露一个服务地址,我们用这个服务地址来连接数据库进行操作,其实我们现在公司开发都是使用云数据库,比如阿里云 RDS 服务。

使用云数据库及 Atlas 的好处在于:

  • 支持更大规模的存储
  • 更安全
  • 是免本地安装
  • 无需手动开启,每次直接链接即可
  • 维护简单,不需要我们去维护数据的升级、安装等等,这些都交给云服务厂商去做了

使用 Atlas 的的缺点:最大的缺点就是有点慢!毕竟服务器在国外。其次只能创建一个集群,这个到无所谓,作为学习使用一个集群就够了,毕竟一个集群中可以创建N个数据库啊。

在国内,云大厂有阿里云、腾讯云等,但是都是收费的,而 MongoDB 官方也提供了 MongoDB Atlas,它有免费版和收费版,免费版就适合我们学习使用。

2. 注册、创建和配置 Atlas

第1步,首先注册用户:https://www.mongodb.com/cloud/atlas/register,创建后来到如下界面,填写组织名,云服务默认选择 MongoDB Atlas 即可。

第2步,添加成员并设置权限,可不填

创建成功后来到如下页面

第3步,创建一个Project,点击 New Project按钮,输入项目名称

然会又会来到类似第2步的页面提示增加成员并设置权限,可不填,点击 Create Project 按钮继续,然后会来到创建集群的页面

第4步,创建集群,选择创建免费的集群

选择服务商和节点

有两个选择,推荐选择第2个,毕竟香港更靠近大陆,速度更快。

  1. AWS + Singapore(新加坡)
  2. Azure + Hongkong(香港)【推荐】

然后填写集群名称,如果不知道取什么名字那就默认为Cluster0吧,然后点击 Create Cluster 按钮

集群创建中。。。

创建成功后显示如下

3. 配置数据库相关信息

第1步,添加数据库用户,配置用户名密码,用于连接 MongoDB 时登录

第2步,把IP地址添加到白名单里面

到这一步Atlas就创建和配置成功了。

4. 连接到 Atlas 集群

创建和配置好Atlas 集群后,我们就可以用 Mongoose 模块和 MongoDB 客户端工具进行连接了。

在连接之前,我们先拿到数据库连接信息,点击集群页面的 Connect 按钮,然后选择第二个

然后就可以Copy连接字符串了(将您的连接字符串添加到您的应用程序代码中)

我的连接字符串如下:

mongodb+srv://zhangbing:<password>@cluster0-jarma.azure.mongodb.net/test?retryWrites=true&w=majority

4.1 NoSQLBooster 连接 Atlas

MongoDB 客户端工具有很多,免费好用的这里推荐 NoSQLBooster for MongoDB,支持Mac OS 和 Windows 系统,软件界面略有过时,由曾经风靡一时的 jQuery EasyUI 构建,界面美观程度还过得去。

打开 NoSQLBooster 连接 MongoDB,选择 From URI,输入上面拿到的连接字符串,注意替换连接里面的<password>为你的 MongoDB 连接密码,比如123321。

然后点击 Test Connection 按钮进行连接测试,出现如下情况即连接成功!

关闭窗口,点击OK按钮,在点击OK按钮保存连接信息

双击连接信息即可进入

到了这一步,就成功了!

4.2 使用 mongoose 连接

const mongoose = require('mongoose')

const connection = 'mongodb+srv://zhangbing:123321@cluster0-jarma.azure.mongodb.net/test?retryWrites=true&w=majority'
mongoose.connect(connection, { 
    useUnifiedTopology: true,
    useNewUrlParser: true,
    useFindAndModify: true 
}, () => console.log('mongoose连接成功了!'))
mongoose.connection.on('error', console.error)

全文完。


关注公众号,第一时间接收最新文章。如果对你有一点点帮助,可以点喜欢点赞点收藏,还可以小额打赏作者,以鼓励作者写出更多更好的文章。
关注公众号


杭州程序员张张
11.8k 声望6.7k 粉丝

Web/Flutter/独立开发者/铲屎官