什么是二进制json(BSON)中的二进制文件?

时间:2019-03-03 09:48:12

标签: mongodb mongoose nosql mongodb-query bson

为什么二进制字以BSON格式存储数据时为何将其用于BSON

A document such as { "hello": "world" } will be stored as:

Bson:
  \x16\x00\x00\x00               // total document size
  \x02                           // 0x02 = type String
  hello\x00                      // field name
  \x06\x00\x00\x00world\x00      // field value (size of value, value, null terminator)
  \x00                           // 0x00 = type EOO ('end of object')

对于这种格式,我们还需要解释器来解析并将其转换为机器指令,然后

它以什么方式压缩实际的JSON数据并进行快速解释?

1 个答案:

答案 0 :(得分:0)

这是二进制数据类型的类比语义。 BSON二进制文件具有一个字节数组,表示一个从0到127的内部子类型。

例如:字节0000 0000 1000代表十六进制“ \ x08”,这表示BSON规范中的布尔类型。

驱动程序将采用BTF格式的UTF-8编码和解码格式,MongoDB中的WiredTiger等存储引擎将负责对BSON格式的数据进行序列化和反序列化。