BSON 是什么

BSON 是什么

BSON代表Binary JSON。它是一种二进制文件格式,用于以二进制编码格式存储序列化的JSON文件。它于2009年由MongoDB开发。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文档的三个主要特点-

  1. 轻量级 - 数据传输过程中的开销一般指不必要的额外比特(如校验和、奇偶校验等)。这些比特通常作为标头的一部分与数据一起传输。BSON将空间开销保持在最低限度,使其在任何网络上传输时都可以轻巧。
  2. 可遍历 - BSON被设计成具有高度遍历性。由于其二进制结构支持类型和长度编码,因此可以很容易且快速地进行解析。
  3. 高效 - BSON支持高效的数据编码和解码。数据可以很容易、很快地编码和解码为BSON。

    为什么选择BSON?

使用BSON进行数据传输有以下优势-

  1. BSON可以很容易且快速地解析,因为它支持类型和长度编码,得益于其二进制结构。
  2. BSON对象的设计目标是具有高度遍历性和轻巧性,因此它是数据传输的更好选择。
  3. 与JSON对象相比,它占用更少的空间并提供更快的扫描速度。
  4. 它提供了广泛的数据类型,如日期类型等,其中许多类型在JSON中不受支持。

    BSON支持的数据类型: 以下是BSON支持的数据类型-

序号 数据类型 大小(字节)
1 字节 1
2 int32 4
3 int64 8
4 uint64 8
5 double 8
6 decimal128 16
7 date 8
8 objectId 12
9 array 根据数据大小(例如 – 字节数组使用1字节)

BSON使用的缺点:

BSON支持快速遍历BSON文档。为了支持它,BSON在文档中添加了额外的信息(如子对象的长度等)。在某些情况下,这会导致文档大小增加,并降低与JSON相比的效率。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程