BSON

BSONは主にMongoDBのデータストレージ及びネットワーク転送フォーマットとして利用されている、データ交換フォーマットである。
単純なデータ構造や連想配列（MongoDBではオブジェクトまたはドキュメントと表す）を示すバイナリ構造であり、
名称はJSON由来であり、「バイナリ型JSON」の略語であるBSON Specification。

データ型と構文
フィールド名、型、値の要素順の構造である、型はstring、integer (32ビットまたは64ビット)、double（64ビットのIEEE 754）、date（UNIX時間の1 E-3 s単位整数）、byte array（バイナリデータ配列）、boolean（trueまたはfalse）、null、BSONオブジェクト、BSON配列、正規表現、JavaScriptコードのいずれかである。

型は名目上JSONの上位集合であるが（例えばJSONは「date」と「byte array」を持たないJSON Specification）、例外としてJSONが使用可能な「number」が使用できない。

効率
JSONに比べて、ストレージ容量及びスキャン速度に効率的な設計である。
大容量のデータのスキャンを容易にするため、データ長部が扱われる。
データのプレフィックス長や配列指数によっては、JSONよりも多くの容量を占めることもある。

 例  
例文{"hello":"world"} は以下のように格納される: 

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')

関連項目
Protocol Buffers
Apache Thrift
Abstract Syntax Notation One
Efficient XML Interchange

脚注

 外部リンク
 BSON仕様
 MongoDBサイト内BSONドキュメント

Category:データシリアライゼーションフォーマット
Category:ドキュメント指向データベース
Category:JSON