1. MongoDB 的简介
??MongoDB 是一个开源、高性能的文档型数据库。它不像 MySQL 一样有表结构,而是采用类似于 JSON 的数据结构来存储 。它是 NoSQL 数据库的一种,是最像关系型数据库的非关系型数据库。它主要应用于以下场景:
数据量大 - 读写都很频繁
- 对事务性要求不高的,价值较低的数据
2. MongoDB 与 MySQL 的对比
SQL术语/概念 | MongoDB术语/概念 | 解释/说明 |
---|
database | database | 数据库 | table | collection | 数据库表/集合 | row | document | 数据记录行/文档 | column | field | 数据字段/域 | index | index | 索引 | table joins | - | 表连接/MongoDB不支持 | - | 嵌入式文档 | MongoDB通过嵌入式文档(JSON格式数据)来代替多表连接 | primary key | primary key | 主键/MongoDB自动将_id 字段设为主键 |
3. docker 安装 MongoDB
- 拉取 MongoDB 镜像
docker pull mongo
- 创建 MongoDB 容器
docker run -di --name=mongodb -p 27017:27017 mongo --auth
- 进入 MongoDB 容器
docker exec -it mongodb mongo admin
注意:这个会直接进入到操作 MongoDB 的命令行
- 创建一个 admin 管理员账号
db.createUser({ user: 'root', pwd: 'root', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });
- 退出
exit
-
创建普通用户、密码和数据库
- 以 admin 用户身份进入 mongodb 容器
docker exec -it mongodb mongo admin
????2. 对 admin 进行身份认证(就是认证上面创建的管理员账号和密码)
db.auth("root","root");
????3. 创建用户、密码和数据库
db.createUser({ user: 'zy', pwd: 'zy123456', roles: [ { role: "readWrite", db: "app" } ] });
????4. 退出
exit
-
登录 app 数据库并添加数据
- 以 admin 用户身份进入 mongodb 容器
docker exec -it mongodb mongo admin
????2. 对 zy 用户进行身份认证
db.auth("zy","zy123456");
????3. 切换到 app 数据库
use app
????4. 添加数据
db.test.save({name:"zhangsan"});
????5. 退出
exit
注意:在阿里云开放 27017 端口
4. MongoDB Compass 图形化界面客户端
??下载地址:https://www.mongodb.com/try/download/compass ??下载的是一个压缩包,直接解压,执行 MongoDBCompass.exe 文件即可
5. 基本常用命令
(1) 要创建的集合的结构(相当于数据库的表结构)
??把下面集合的结构放到 MongoDB 中。数据库:articledb
字段名称 | 字段含义 | 字段类型 | 备注 |
---|
_id | 主键 id | ObjectId 或 String | Mongo 的主键字段 | article_id | 文章 id | String | - | content | 评论内容 | String | - | user_id | 评论人 id | String | - | nickname | 评论人昵称 | String | - | create_datetime | 评论的日期时间 | Date | - | likenum | 点赞数 | int32 | - | replynum | 回复数 | int32 | - | state | 状态 | String | 0:不可见;1:可见 | parent_id | 上级 id | String | 如果为 0 表示文章的顶级评论 |
(2) 选择和创建数据库
- 语法结构:
use 数据库名称 - 说明:如果数据库不存在,则创建这个数据库并选择使用这个数据库;如果数据库存在,则选择使用这个数据库
- 例如:创建并使用 articledb 数据库:
use articledb
(3) 查看所有数据库
注意:上面用 use 创建的数据库只存在内存中,查看所有数据库无法看到上面的刚创建的数据库。只有数据库创建了集合后并在集合中插入文档,才能持久化到磁盘中,才能被查到
(4) 查看当前正在使用的数据库
(5) 删除当前正在用的数据库
6. MongoDB 的安装
- 安装包的下载
??在官网下载 MongoDB 的压缩包:mongodb-src-r5.0.8.tar.gz。下载地址为:https://www.mongodb.com/try/download/community
- 上传压缩包到 Linux 系统的 /data 目录中
- 将压缩包解压到当前目录
tar -zxvf mongodb-linux-x86_64-4.0.28.tgz
|