【发布时间】:2019-07-24 20:08:43
【问题描述】:
为什么二进制字被用于 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 数据并进行快速解释?
【问题讨论】:
-
"...我们需要解释器来解析并将其转换为机器指令.." - 不,那是完全不同的事情。这些不是“机器指令”,而只是用于存储数据的“字节格式”。类 JSON 并不意味着它在任何时候都是 JSON。实际上,它只是“只是另一个打包数据结构”的“营销名称”。
-
不要忘记
{ "hello": "world" }在 JavaScript 中只是看起来像这样。对于 Java、C# 或 Go,它看起来像是完全不同的语言,并且是该语言的原生语言。 BSON 是任何这些形式的“通用翻译”。但是对于“类型”,像 JSON 这样的基于文本的东西没有。 -
我的意思是说二进制这个词对 BSON 有什么意义,以及 BSON 的什么属性使它变得更快。
标签: mongodb mongoose nosql mongodb-query bson