JSON
1、什么是JSON JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 JSON采用完全独立于语言的文本格式,但也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。 这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。 可以详细参考:http://www.json.org.cn/2、JSON 数据的书写格式 名称/值对 对象 是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。 每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。 如: ({"firstName":"John"})3、JSON仅支持以下数据类型 数字(整数或浮点数) 字符串(在双引号中) 逻辑值(true 或 false) 数组(在方括号中) 对象(在花括号中) null4、JSON基于两种结构: “名称/值”对的集合(A collection of name/value pairs),在不同的编程语言中有不同的描述 如:对象(object),纪录(record),结构(struct),字典(dictionary) 哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array) 值的有序列表。在大部分语言中,它被实现为数组(array),矢量(vector),列表(list),序列(sequence)
BSON
1、什么是BSON BSON()是一种类json的一种二进制形式的存储格式,简称Binary JSON 它和JSON一样,支持内嵌的文档对象和数组对象,但是BSON有JSON没有的一些数据类型,如Date和BinData类型。 https://docs.mongodb.com/manual/reference/bson-types/2、BSON的特性 轻量性、可遍历性、高效性3、mongoDB与BSON mongoDB对JSON串做了一些增加,使其可以支持更多的数据类型,并且将其作为存储结构 mongoDB这种格式转化成一文档这个概念(Document),因为BSON是schema-free的,所以在MongoDB中所对应的文档也有这个特征 mongoDB以BSON做为其存储结构的一种重要原因是其可遍历性
ObjectId
ObjectId 是一个12字节 BSON 类型数据,有以下格式:前4个字节表示时间戳接下来的3个字节是机器标识码紧接的两个字节由进程id组成(PID)最后三个字节是随机数。MongoDB中存储的文档必须有一个"_id"键。这个键的值可以是任何类型的,默认是个ObjectId对象。在一个集合里面,每个文档都有唯一的"_id"值,来确保集合里面每个文档都能被唯一标识。MongoDB采用ObjectId,而不是其他比较常规的做法(比如自动增加的主键)的主要原因,因为在多个 服务器上同步自动增加主键值既费力还费时。