.bson
Data
BSON(Binary JSON)
BSONはMongoDBがドキュメントを保存するために使用するバイナリシリアライゼーションフォーマットです。JSONを追加のデータ型(日付、バイナリ、ObjectId、decimal128)で拡張し、ドキュメントデータベース内での効率的なエンコーディング、スキャン、インプレース更新のために設計されています。
MIMEタイプ
application/bson
種類
バイナリ
圧縮
無劣化
メリット
- + Rich type system beyond JSON (dates, ObjectId, binary, Decimal128)
- + Efficient for database storage — length-prefixed for fast scanning
- + Supports in-place updates without rewriting entire documents
デメリット
- − Can be larger than JSON for string-heavy documents
- − Not human-readable — requires tooling to inspect
- − Primarily MongoDB-specific — limited use outside that ecosystem
.BSONを使うタイミング
BSONは主にMongoDBの内部で使用されます。データ交換にはJSONまたはMessagePackを推奨します。
技術的詳細
BSONドキュメントは型タグ付き要素を持つ長さプレフィックス付きバイナリです。各要素は1バイトの型識別子、Cスタイルの文字列キー、型固有の値を持ちます。これによりO(1)のサイズチェックと効率的なトラバーサルが可能です。
歴史
MongoDB Inc.(当時10gen)は2009年にMongoDBの内部ストレージおよびワイヤーフォーマットとしてBSONを開発しました。仕様はオープンで、型付きJSON風バイナリフォーマットが必要な他のプロジェクトにも採用されています。