MongoDB
MongoDB 属于文档数据库,是将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。
文档数据库:
文档数据库的核心是键/值存储,将数据存储在,XML、JSON、Sinary 、JSON (MongoDB)或任何数据库可理解的文档中。
键值对:
key-value {“name”: “xunwukong”}
key--name
value--xunwukong
JSON
JSON是一种简单数据格式,它有三种
数据结构:
键值对 —— Name/Value (Key/Value)
对象 —— Object
数组 —— Arrays
注意:
一个有效的JSON文档需要被包含在一对花括号内
{ JSON-Data }
JSON中的数值(键值对中的值)可以是以下任意一种:
Number 数值类型数据可以是整型也可以是双精度的浮点型数据
Boolean JSON中的Boolean值可以用true或false来表示
Object 未排序键值对的集合
Array JSON中[]来包含数组元素
String JSON中“”或‘’来包含字符串元素
null 表示一个属性或元素没有值
BSON
BSON是MongoDB在集合中存储文档时使用的类JSON文档的二进制编码。
BSON中的数值(键值对中的值)可以是以下任意一种:
Number 数值类型数据可以是整型也可以是双精度的浮点型数据
Boolean BSON中的Boolean值可以用true或false来表示
Object 未排序键值对的集合
Array BSON中[]来包含数组元素
String BSON中“”或‘’来包含字符串元素
null 表示一个属性或元素没有值
date(整数,自UNIX时间的毫秒数)
byte array(二进制数组)
JSON和BSON区别
BSON增加了对JSON不支持的数据类型如日期和二进制的支持。
(1)更快的遍历速度
(2)操作更简易
(3)增加了额外的数据类型
ObjectId
MongoDB采用了一个称之为ObjectId的类型来做主键。ObjectId是一个12字节的 BSON 类型字符串ObjectId的值由12个字节组成,其中,
4个字节表示时间戳(自Unix纪元以来的秒数),记录创建时间;
3个字节表示机器标识符,保证不同主机产生不同的ObjectId值;
2个字节表示进程ID,保证在同一台主机不同MongoDB进程产生不同的ObjectId值;
3个字节表示自增计数器(以随机值开头),保证同一主机同一进程同一秒内产生ObjectId的唯一性。
注:时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总毫秒数;
ObjectId =时间戳(4字节) + 机器标识码(3字节) + 进程ID(2字节) + 计数器(3字节)
ObjectId("5e58b654142055252e21110b") 划分:ObjectId("5e58b654--142055--252e--21110b")
image.png
网友评论