BSON简介

一、什么是BSON

BSONBinary JSON)是对JSON的一种二进制编码数据格式,目前主要用于MongoDB中。和JSON一样,BSON支持嵌入式的文档和数组。BSON包含了JSON没有的数据类型,比如Date typeBinData typeBSON是由零个或多个键值对存储为单个实体,我们称这种实体为文档

二、BSON的特性

1)轻量级(Lightweight): 空间优势。
2)遍历性(Traversable): 对于JSON来说,太大的JSON结构会导致数据遍历非常慢。在JSON中,要跳过一个文档进行数据读取,需要对此文档进行扫描,需要麻烦的数据结构匹配。而BSONJSON的每一个元素的长度存在元素的头部,这样只需要读取元素长度就可以直接seek到指定的点上进行读取了。

3)高效(Efficient): BSON的编码与解码速度很快。

三、BSON的语法规范(v1.0

用伪BNF语法描述。有效的BSON数据是由文档与非终结符表示的。

1)基本类型: 用作终结符。每个类型必须被序列化为 小端格式

字节

1字节(8bit

32位整数

4字节(32bit有符号整数)

64位整数

8字节(64bit有符号整数)

双精度浮点数

8字节(64bit IEEE 754标准 浮点数)

2)非终结符:
     用 引号 括起来的字符串表示终结符,如 ”\x01” 表示字节 00000001

     *操作符速记法,”\x01”*2代表”\x01\x01”,当*作为一元操作符,意味着可以重复0次以上。

四、BSON基本示例

五、BSON更多示例

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值