什么是 BSON?
BSON 代表二进制 JSON。它是一种二进制文件格式,用于以二进制编码格式存储序列化的 JSON 文档。它由 MongoDB 于 2009 年开发。 MongoDB 数据库有几种只对 MongoDB 特别感兴趣的标量数据格式,因此他们开发了 BSON 数据格式,以便在通过网络传输文件时使用。尽管该格式是专门为 MongoDB 开发的,但它可以根据业务需求在任何地方独立使用。
它与 JSON 有一些相似之处,例如 BSON 也支持嵌套文档和其他文档中的数组,但仍有许多显着差异。请参阅这篇文章以了解有关 JSON 和 BSON 之间区别的更多信息。
示例 BSON 文档
考虑以下 JSON 文档:
{
"hello" : "world"
}
它的 BSON 等价物将是:
\x16\x00\x00\x00 // Size of the Document
\x02 // 0x02 = type String
hello\x00 // field name
\x06\x00\x00\x00world\x00 // field value
\x00 // Used to represent end of object
其中“\x01”用于表示 0000 0001。
BSON 文档的特征:以下是 BSON 文档的三个主要特征-
- 轻量级——数据传输期间的术语开销是指传输不需要的额外位(如校验和、奇偶校验等)。这些位通常作为标头的一部分与数据一起传输。 BSON 将空间开销保持在最低限度,这使得它在通过任何网络传输时都是轻量级的。
- 可遍历的——BSON 被设计成本质上是高度可遍历的。由于它的二进制结构,它支持类型和长度编码,因此可以轻松快速地解析它。
- 高效——BSON 支持高效的数据编码和解码。数据可以非常轻松快速地编码到 BSON 并从 BSON 解码。
为什么选择 BSON?
以下是在数据传输过程中使用 BSON 的优势——
- BSON 可以轻松快速地解析,因为它支持类型和长度编码,这要归功于它的二进制结构。
- BSON 对象的设计本质上是高度可遍历和轻量级的,这使其成为数据传输的更好选择。
- 与 JSON 对象相比,它占用更少的空间并提供更快的扫描速度。
- 它提供了广泛的数据类型,例如 – 日期类型等),其中许多不受 JSON 支持。
BSON 支持的数据类型:以下是 BSON支持的数据类型——S No Data Type Size (bytes) 1 byte 1 2 int32 4 3 int64 8 4 uint64 8 5 double 8 6 decimal128 16 7 date 8 8 objectId 12 9 array Based on data (For ex – A byte array uses 1 byte)
使用 BSON 的缺点: BSON 支持快速遍历 BSON 文档。为了支持它,BSON 在文档中添加了额外的信息(如子对象的长度等)。在某些情况下,与 JSON 相比,这会导致文档大小增加并降低效率。