简介

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部署

单机版

  1. version: '3.1'
  2. services:
  3. mongo:
  4. image: mongo
  5. container_name: mongo
  6. restart: always
  7. environment:
  8. MONGO_INITDB_ROOT_USERNAME: root
  9. MONGO_INITDB_ROOT_PASSWORD: 123456
  10. TZ: Asia/Shanghai
  11. ports:
  12. - 27017:27017
  13. volumes:
  14. - ./volume/config:/data/configdb
  15. - ./volume/data:/data/db

集群版

待更新

k8s部署

待更新