BSON(/ˈbiːsən/)是一种计算机数据交换格式,主要被用作MongoDB数据库中的数据存储和网络传输格式。它是一种二进制表示形式,能用来表示简单数据结构、关联数组(MongoDB中称为“对象”或“文档”)以及MongoDB中的各种数据类型。BSON之名缘于JSON,含义为Binary JSON(二进制JSON)。

外文名

Binary Serialized Document Format

数据类型和语法

BSON文档(对象)由一个有序的元素列表构成。每个元素由一个字段名、一个类型和一个值组成。字段名为字符串。类型包括:

• string

• integer(32或64位)

• double(64位IEEE 754浮点数)

• decimal128(128位IEEE 754-2008浮点数;Binary Integer Decimal变体),适合作为任意精度为34个十进制数字的数字载体,最大值近似10

• date(整数,自UNIX时间的毫秒数)

• byte array(二进制数组)

• 布尔(true或false)

• null

• BSON对象

• BSON数组

• JavaScript代码

• MD5二进制数据

• 正则表达式(Perl兼容的正则表达式,即PCRE,版本8.41,含UTF-8支持;与Python不完全兼容)

BSON的类型名义上是JSON类型的一个超集(JSON没有date或字节数组类型),但一个例外是没有像JSON那样的通用“数字”(number)类型。

效率

与JSON相比,BSON着眼于提高存储和扫描效率。BSON文档中的大型元素以长度字段为前缀以便于扫描。在某些情况下,由于长度前缀和显式数组索引的存在,BSON使用的空间会多于JSON。

参见

• 数据序列化格式比较

• JSON

• CBOR

• Smile(二进制JSON)

• UBJSON

• Protocol Buffers

• Action Message Format

• Thrift

• MessagePack

• 面向文档的数据库

• MongoDB

• ASN.1

• Wireless Binary XML(WBXML)

• Efficient XML Interchange

• Sereal