MongoDB之基本概念和应用场景
时间 2021-08-15
标签
MongoDB
基本概念
特点
应用场景
基本概念和应用场景
应用场景
- 数据量大
- 写入操作频繁
- 价值较低的数据,对事务要求不高
场景特点
- 应用不需要事务和复杂join
- 应用需要2000~3000以上的的读写QPS
- 应用需要TB或PB级别数据存储
- 应用发展迅速,需要快速水平扩展
- 应用要求存储的数据不丢失
- 99.99%的高可用
- 大量的地理位置查询,文本查询
MongoDB特点
- 高性能
- 高性能的数据持久性
- 索引支持更快的查询,可以包含来自嵌入式文档的数组的键
- Gridts解决存储的需求
- 高可用
- MogoDB的复制工具为副本集,可提供自动故障转移和数据冗余
- 高扩展
- 丰富的查询支持
- 其他特点
基本概念
简单介绍
- 开源,高性能,无模式的文档型数据库
- 支持的数据结构非常松散,类似json的格式叫BSN
- 记录是一个文档,由一个字段和值对(field:value)组成的数据结构,一个文档认为是一个对象,字段的数据类型是字符型,值除了基本的类型还可以包括文档,普通数组和文档数组
体系结构
sql概念 |
MongoDB概念 |
说明 |
database |
database |
数据库 |
table |
collection |
表/集合 |
row |
document |
行/文档 |
column |
field |
数据字典/域 |
index |
index |
索引 |
table joins |
|
MongoDB不支持连表 |
|
嵌入文档 |
MongoDB通过嵌入文档来替代多表连接 |
primary key |
primary key |
主键,MongoDB自动将_id字段设置为主键 |
数据类型
数据类型 |
描述 |
举例 |
字符串 |
UTF-8都可表示为字符串类型的数据 |
{“x”:“bar”} |
对象id |
对象id是文档的12字节的唯一ID |
{“x”:ObjectId{}} |
布尔值 |
true或false |
{“x”:true}+ |
数组 |
值的集合或列表 |
{“x”:[“a”,“b”,“c”]} |
32位整数 |
类型不可用,会被自动转换为64位浮点数 |
|
64位整数 |
型不可用,会被自动转换为64位浮点数 |
|
null |
空值或未定义的类型 |
{“x”:null} |
undefined |
未定义类型 |
{“x”:undefined} |
符号 |
不支持,会自动转换为字符串 |
|
正则表达式 |
文档可以包含正则,采用js的正则表达式 |
{“x”: /bar/i} |
代码 |
文档可以包含js代码 |
{“x”: function(){}} |
二进制数据 |
可以有任意字节的串组成,不过shell无法使用 |
|
最大值/最小值 |
BSON包括一个特殊类型,表示可能的最大值 |
|
- shell默认64浮点型数值,对于整型值.可以使用Numberint或者NumberLong.{“x”:NumberInt(“3”)},{“x”:NumberLong(“3”)}