JSON

  1. 1、什么是JSON
  2. JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。
  3. JSON采用完全独立于语言的文本格式,但也使用了类似于C语言家族的习惯(包括CC++、C#、Java、JavaScript、Perl、Python等)。
  4. 这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。
  5. 可以详细参考:http://www.json.org.cn/
  6. 2JSON 数据的书写格式
  7. 名称/值对 对象
  8. 是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。
  9. 每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。
  10. 如: ({"firstName":"John"})
  11. 3JSON仅支持以下数据类型
  12. 数字(整数或浮点数)
  13. 字符串(在双引号中)
  14. 逻辑值(true false
  15. 数组(在方括号中)
  16. 对象(在花括号中)
  17. null
  18. 4JSON基于两种结构:
  19. “名称/值”对的集合(A collection of name/value pairs),在不同的编程语言中有不同的描述
  20. 如:对象(object),纪录(record),结构(struct),字典(dictionary
  21. 哈希表(hash table),有键列表(keyed list),或者关联数组 associative array
  22. 值的有序列表。在大部分语言中,它被实现为数组(array),矢量(vector),列表(list),序列(sequence)

BSON

  1. 1、什么是BSON
  2. BSON()是一种类json的一种二进制形式的存储格式,简称Binary JSON
  3. 它和JSON一样,支持内嵌的文档对象和数组对象,但是BSONJSON没有的一些数据类型,如DateBinData类型。
  4. https://docs.mongodb.com/manual/reference/bson-types/
  5. 2BSON的特性
  6. 轻量性、可遍历性、高效性
  7. 3mongoDBBSON
  8. mongoDBJSON串做了一些增加,使其可以支持更多的数据类型,并且将其作为存储结构
  9. mongoDB这种格式转化成一文档这个概念(Document),因为BSONschema-free的,所以在MongoDB中所对应的文档也有这个特征
  10. mongoDBBSON做为其存储结构的一种重要原因是其可遍历性

ObjectId

  1. ObjectId 是一个12字节 BSON 类型数据,有以下格式:
  2. 4个字节表示时间戳
  3. 接下来的3个字节是机器标识码
  4. 紧接的两个字节由进程id组成(PID
  5. 最后三个字节是随机数。
  6. MongoDB中存储的文档必须有一个"_id"键。这个键的值可以是任何类型的,默认是个ObjectId对象。
  7. 在一个集合里面,每个文档都有唯一的"_id"值,来确保集合里面每个文档都能被唯一标识。
  8. MongoDB采用ObjectId,而不是其他比较常规的做法(比如自动增加的主键)的主要原因,因为在多个 服务器上同步自动增加主键值既费力还费时。