BSON

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索
BSON
拡張子 .bson
MIME Type none[1]
種別 データ交換
派生元 JSON
国際標準 no RFC yet
公式サイト bsonspec.org
テンプレートを表示

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

データ型と構文[編集]

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

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

効率[編集]

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

[編集]

例文{"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')

関連項目[編集]

脚注[編集]

外部リンク[編集]