简介
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: mongo
container_name: mongo
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: 123456
TZ: Asia/Shanghai
ports:
- 27017:27017
volumes:
- ./volume/config:/data/configdb
- ./volume/data:/data/db
集群版
k8s部署
待更新