- MongoDB:基于NoSQL文档存储模型,文档是以二进制JSON(BSON)对象的方式存储
- MongoDB优点:面向文档、高性能、高可用性(复制集)、高可拓展性(分布式)、对SQL注入攻击免疫
- 文档之间的关系:1:1、1:N、N:1、N:N
- 传统关系型数据库和MongoDB非关系型文档数据库的比较
SQL术语/概念 | MongoDB术语/概念 | 解释/说明 |
database:数据库 |
database:数据库 |
数据库 |
table:表格 |
collection:集合 |
数据库表/集合,存放文档 |
row:行 |
document:文档 |
数据记录行/文档,文档数据库最小的单位 |
column:列 |
field:字段 |
数据字段/域 |
index:索引 |
index:索引 |
索引 |
table joins:表连接 |
|
表连接,MongoDB不支持 |
primary key:主键 |
primary key:主键 |
主键,MongoDB自动将_id字段设置为主键 |
- MongoDB ObjectId
- ObjectId是一个12字节BSON类型数据,有以下格式
- 前4个字节表示时间戳
- 接下来的3个字节是机器标识码
- 紧接的2个字节有进程id组成(PID)
- 最后3个字节是随机数
- MongoDB存储的文档必须有一个 _id 键,这个键可以人为自定义,默认是个ObjectId对象,且该键在某个集合中必须是唯一的,来确保集合里面每个文档都能被唯一标识
- MongoDB采用ObjectId的原因:在多个服务器上使用自增的主键既费力又费时
类型 | 数字 | 备注 |
Double |
1 |
|
String |
2 |
|
Object |
3 |
|
Array |
4 |
|
Binary data |
5 |
|
Undefined |
6 |
已废弃 |
Object id |
7 |
|
Boolean |
8 |
|
Date |
9 |
|
Null |
10 |
|
Regular Expression |
11 |
|
JavaScript |
13 |
|
Symbol |
14 |
|
JavaScript (with scope) |
15 |
|
32-bit integer |
16 |
|
Timestamp |
17 |
|
64-bit integer |
18 |
|
Min key |
255 |
Query with -1 |
Max key |
127 |
|
- WriteConcern参数
- WriteConcern.NONE:没有异常抛出
- WriteConcern.NORMAL:仅抛出网络错误异常,没有服务器错误异常
- WriteConcern.SAFE:抛出网络错误异常、服务器错误异常;并等待服务器完成写操作
- WriteConcern.MAJORITY:抛出网络错误异常、服务器错误异常;并等待一个主服务器完成写操作
- WriteConcern.FSYNC_SAFE:抛出网络错误异常、服务器错误异常;写操作等待服务器将数据刷新到磁盘
- WriteConcern.JOURNAL_SAFE:抛出网络错误异常、服务器错误异常;写操作等待服务器提交到磁盘的日志文件
- WriteConcern.REPLICAS_SAFE:抛出网络错误异常、服务器错误异常;等待至少2台服务器完成写操作
posted @
2020-08-15 22:24
陨落的星尘
阅读(
136)
评论()
编辑
收藏
举报