一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第12天,点击查看活动详情。
1. 特点
- 使用高效的二进制数据存储,可以存储大型对象(如视频)
- 语法类似于面向对象的查询语言(java)
- 可以实现类似关系数据库单表查询的的大多数功能 MongoDB 的查询优化器会自动分析查询语句
- 然后生成一个高效的查询集合 MongoDB可以针对任何属性建立索引
- 更快排序 MongoDB支持Map/Reduce,实现了关系型数据库中的 group by 操作
- 水平扩展数据库集群,动态添加片(服务器),保证存储的负载均衡
| SQL 术语/概念 | MongoDB术语/概念 | 解释/说明 |
|---|
| database | database | 数据库 |
| table | collection | 数据库表/集合 |
| row | document | 数据记录行/文档 |
| column | field | 数据字段/域 |
| index | index | 索引 |
| table joins | | 表连接,mongodb不支持 |
| primary key | primary key | 主键,MongoDB自动将_id字段设置为主键 |
文档注意事项
- MongoDB不但区分数据类型,也区分大小写。
- 文档中不允许有重复的键
- 文档中键/值对是有序的
- 文档中的值不仅可以是字符串,也可以是其他数据类型
| 数据类型 | 描述 |
|---|
| String | 字符串。存储数据常用的数据类型。 合法的编码类型是UTF-8 |
| Integer | 整型数值。用于存储数值,可分为32位或64位 |
| Boolen | 布尔值。用于存储布尔值 |
| Min/Max keys | 将一个值与BSON元素的最低值和最高值相对比 |
| Arrays | 用于将数组或列表或多个值存储为一个键 |
| Timestamp | 时间戳。记录文档修改或添加的具体时间 |
| Object | 用于内嵌文档 |
| Null | 用于创建空值 |
| Symbol | 符号。该数据类型基本上等同于字符串类型,但不同的是,他一般用于采用特殊符号类型的语言 |
| Date | 日期时间。用UNIX时间格式来存储当前时间 |
| Object ID | 对象ID。用于创建文档的ID |
| Binary Data | 二进制数据。用于创建文档的ID |
| Code | 代码类型 用于在文档中存储JavaScript |
| Regular Expression | 正则表达式类型。用于存储正则表达式 |