MongoDB环境准备

在开始学习 MongoDB 前,我们需要部署 MongoDB 数据库服务。 但是,鉴于我们学习的重点是使用 Node.js 操作 MongoDB 数据库, 所以在此我们选择了另外一种方式,来跳过琐碎的部署与配置。

感谢 Docker,提供了 MongoDB 镜像,供我们快速地安装与使用。

安装Docker

由于 Docker 的用法不在我们的讨论范围。 因此,本节中只简单介绍如何安装 Docker 和在 Docker 中运行 MongoDB 数据库服务。

首先在 Docker 官网下载 客户端。以下的安装与使用均以 Mac 为例。 下载完毕后,双击 docker.dmg,出现如下界面,按提示步骤完成,即安装成功。

../../_images/a609aaf1de097cc8fa48f04a5531b13d.png

下载MongoDB镜像

安装完 docker 后,我们接下来需要下载 MongoDB 的镜像。可以在 官网 上查找有关 MongoDB 的镜像包。 在这,我们拉取 MongoDB3.6 版本,执行命令:

docker pull mongo:3.6

运行MongoDB服务

在运行服务之前,我们需要新建一个 service.yml 文件,并写入以下内容:

// serivce.yml

version: '3.1'

services:
mongo:
    image: mongo:3.6
    ports:
    - 27017:27017
    environment:
    MONGO_INITDB_ROOT_USERNAME: root
    MONGO_INITDB_ROOT_PASSWORD: to0r

这个文件定义了一个 MongoDB 服务,包含了 mongdb 服务的一些信息,包括 mongodb 的版本、服务运行的端口、 数据库用户名和密码。将 service.yml 保存在固定目录下,接下来我们需要使用它来创建并运行 MongoDB 服务。 需要注意的是,请尽量不要移动 service.yml 文件位置,不然已创建的服务需要重建。

打开终端,定位到 service.yml 文件所在的目录,并执行如下命令:

$ docker-compose -f service.yml up -d mongo

执行成功后,我们来查看下 MongoDB 服务是否真的已经运行了:

$ docker ps

可以看到出现了容器的信息:

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                      NAMES
c344ce31b67e        mongo:3.6           "docker-entrypoint.s…"   8 seconds ago       Up 6 seconds        0.0.0.0:27017->27017/tcp   docker-service_mongo_1

此时,MongoDB 服务正运行在 27017 的端口上。

安装Robo3t

为了方便我们观察数据的变化,我们可以安装一个 MongoDBGUI 客户端 —— Robo3t 。 下载后,双击安装程序,进入安装界面,按照提示进行,此处不再赘述。

打开 Robo3t,弹出下面弹框,我们可以遵循步骤,来连接 MongoDB 数据库。

../../_images/a192a6c8d623b2c4fd884d6db0969f89.png

点击左上角的 Create 按钮,填写对应信息,创建连接。

../../_images/fd5d6f3bafc18bef1faa5ff241c7b954.png

上图中,我们看到,需要连接的地址为:localhost:27017,端口与 service.yml 的一样, 不需修改。接下来,我们选择使用 认证 的方式连接。

../../_images/ba25d3187412c5fb37ec79bf93d90ad5.png

service.yml 文件中,我们可以很轻松得到用户名和密码,并填写。点击 save 按钮, 回到主界面后,点击 connect 按钮。就这样,我们连接了数据库,并且可以界面化操作数据库。

../../_images/cfb560de9e8b54d9e359a522b3d02961.png

至此,全部准备工作完毕,我们可以愉快地继续 MongoDB 的下一步学习:

MongoDB快速上手

下一步

订阅更新,获取更多学习资料,请关注我们的 微信公众号

../../_images/wechat-mp-qrcode.png

小菜学编程