一、介绍
在介绍 MongoDB 之前,我先介绍一下业务开发的时候遇到的痛点,以便大家对它有一个更加清晰的认识!
最近在用数据库存储数据的时候发现这么一个坑,例如从消息队列中监听消息的时候,原来的做法是将监听的消息数据存储在数据库,以便好对异常消息数据进行追溯,消息内容使用text类型存储,起初因为数据内容很短,没啥毛病,但是当随着业务的扩展,收到的消息内容越来越长,最后发现数据库中的text字段类型无法很好的支持查询,于是在这个时候,就开始考虑采用更加合适的数据库来存储这种消息数据!
在经过一番讨论之后,对于这种 json 类型的消息数据的存储,大家一致认为采用 MongoDB 是最佳的选择!
据官方介绍,MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富、最像关系数据库的一款高性能的 NoSQL 数据库。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。
其中的文档类似于 JSON 对象。字段值可以包含其他文档、数组及文档数组,数据结构的支持非常灵活!
的确,在使用的过程当中,正如所介绍的,数据的存储和查询,性能极快,而且很好的满足我们的需求!
话不多说,下面我们就一起来了解一下,这款数据库应该如何使用!
二、环境配置
在学习它之前,我们需要先搭建好环境,MongoDB 的安装也非常简单!
2.1、Windows 平台
如果你是 Windows 平台,MongoDB 提供了可用于 32 位和 64 位系统的预编译二进制,安装基本是傻瓜式的操作,登录 MongoDB 官网并且下载安装包,然后一步一步的操作即可!
2.2、Linux 平台
生产环境基本都是 Linux 平台,为了和生产保持一致,小编采用的服务器是CentOS7,安装过程也比较简单!
- 创建资源文件
sudo vim /etc/yum.repos.d/mongodb-org-4.0.repo
- 编辑内容如下
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
- 运行以下命令安装 mongodb
sudo yum install -y mongodb-org
- 安装完成之后,配置mongod.conf允许远程连接
#编辑mongod.conf
vim /etc/mongod.conf
#将net:bindIp: 127.0.0.1 改为 0.0.0.0
net:
bindIp:0.0.0.0
- 最后启动服务
#开启服务
systemctl start mongod
#其他服务
#关闭服务
systemctl stop mongod
#重启服务
systemctl restart mongod
#开机自启
systemctl enable mongod
至此,环境配置已经完成!
三、数据库操作
MongoDB 的数据操作,是开发人员接触最频繁的部分,第一次使用的时候,你会发现它和我们传统使用的 sql 脚本命令完全不同,但是又类似,下面我们就一起来深入的了解下!
3.1、进入 MongoDB
进入 MongoDB 服务很简单,输入如下命令即可进入!
mongo
例如,在CentOS里面输入命令之后,进入的服务界面如下:
3.2、创建数据库
MongoDB 创建数据库的语法格式如下:
use DATABASE_NAME
如果数据库不存在,则创建数据库,否则切换到指定数据库。
输入如下命令,可以查询数据库列表
#查询数据库列表
show dbs
#命令输出结果:
admin
config
local
可以看到,当前 MongoDB 有三个数据库!
输入如下命令,可以切换到admin数据库
use admin
输入db命令,还可以查询当前数据库
db
3.3、创建用户
默认的情况下,是没有用户的,也无法操作数据库,因此我们需要创建一个用户,同时给他分配权限!
3.3.1、创建一个管理员用户
创建一个用户、密码都是admin的用户,同时给这个用户分配userAdminAnyDatabase角色,指定的数据库为admin!
#创建一个admin用户
db.createUser(
{
user: "admin"