简介
mongo属于NoSql数据库,其中一些概念与关系型数据库不太一样,它更像是redis与mysql的中间版。它的基本概念是文档、集合和数据库。下面是一些概念对比。
| sql概念 | mongo概念 | 说明 |
|---|---|---|
| database | database | 数据库 |
| table | collection | 数据库表/集合 |
| row | document | 数据行/文档 |
| column | field | 数据字段列/域 |
| index | index | 索引 |
| primary key | primary key | 主键,mongo自动将_id字段作为主键 |
文档
文档是mongo中的基本单元类似于数据库的行,将多个键值有序的放置在一起,并且有唯一标识_id。
集合
集合可以看做是没有模式的表,mongo中的集合就是一组文档,类比关系型数据库的表。不过mongo对数据结构不做强制要求,比如{“name”:”heian”}和{“name”:”heian”,”age”:12}可以存放在同一个集合中。在shell窗口可以使用show dbs命令查看所有数据库
数据库
多个集合组成数据库,一个mongo可以承载多个数据库,并且彼此独立。每个数据库都有自己的集合和权限。不同的数据库放置在不同的文件中。
常见数据类型
| 数据类型 | 含义 |
|---|---|
| String | 字符串,在mongo中utf-8编码字符串才符合标准 |
| Integeer | 整型数值 |
| Boolean | 布尔 |
| Double | 双精度浮点 |
| Min/Max keys | 将一个值与BSON元素的最低值和最高值对比 |
| Arrays | 将数组或列表或多个值存储为一个键 |
| Timestamp | 时间戳 |
| Object | 用于内嵌文档 |
| Null | 用于创建空值 |
| Symbol | 符合,基本等同字符串,一般用于特殊符号类型的语言 |
| Date | 日期时间 |
| Object ID | 用于创建文档的ID |
| Binary Data | 二进制数据 |
| Code | 用于在文档中的js代码 |
| Regular expression | 正则表达式 |
docker-compose部署
单机版
version: '3.1'services:mongo:image: mongocontainer_name: mongorestart: alwaysenvironment:MONGO_INITDB_ROOT_USERNAME: rootMONGO_INITDB_ROOT_PASSWORD: 123456TZ: Asia/Shanghaiports:- 27017:27017volumes:- ./volume/config:/data/configdb- ./volume/data:/data/db
集群版
k8s部署
待更新
