| ファイル名拡張子 |
.bson |
|---|---|
| インターネットメディアの種類 | application/bson[1] |
| フォーマットの種類 | データ交換 |
| 延長 | 翻訳 |
| Webサイト | 出典: |
BSON(/ ˈ b iː s ə n / [2] )は、コンピュータデータ交換形式です。「BSON」という名前はJSONという用語に基づいており、「Binary JSON」の略です。[2]これは、連想配列(名前と値のペアとも呼ばれる)、整数インデックス配列、および一連の基本的なスカラー型を含む、単純または複雑なデータ構造を表すバイナリ形式です。BSONは2009年にMongoDBで生まれました。いくつかのスカラーデータ型はMongoDBにとって特に重要であり、この形式はMongoDBデータベースのデータストレージとネットワーク転送形式の両方として使用されますが、MongoDBの外部でも独立して使用できます。実装はC、C++、C#、D、Delphi、Erlang、Go、Haskell、Java、JavaScript、Julia、Lua、OCaml、Perl、PHP、Python、Ruby、Rust、Scala、Smalltalk、Swiftなどさまざまな言語で利用可能です。[3]
データ型と構文
BSONには公開された仕様があります。[4] [5] 構造の最上位要素はBSONオブジェクト型で、1つ以上の要素を含みます。要素はフィールド名、型、値で構成されます。フィールド名は文字列です。型には次のものがあります。
- Unicode文字列 ( UTF-8エンコードを使用)
- 32ビット整数
- 64ビット整数
- double (64 ビットIEEE 754浮動小数点数、NaN/Inf を含む)
- 10進128(128ビットIEEE 754-2008浮動小数点数、2進整数10進数(BID)バリアント)。小数点以下の桁数に敏感な金融データや、34桁の精度を持つ任意精度の数値のキャリアとして適しており、最大値は約10 6145です。
- タイムゾーンなしの日時 ( Unix エポックからのミリ秒数を表す長整数)
- バイト配列(任意のバイナリデータ用)
- ブール(
trueおよびfalse) - ヌル
- BSON オブジェクト
- BSON配列
- JavaScript コード
- MD5バイナリデータ
- 正規表現(Perl互換正規表現(「PCRE」)バージョン8.41、UTF-8サポート)[6]
JSONとの重要な違いは、BSON には JSON には存在しない型 (datetime、バイト配列、適切な IEEE 754 float など) が含まれており、汎用的な「数値」型ではなく、いくつかの数値型に対して型厳密な処理が提供されることです。これらの追加の型をテキスト形式で表現する必要がある場合は、MongoDB の拡張 JSON 形式[7]を使用できます。
効率
JSONと比較すると、BSONはストレージスペースとスキャン速度の両方で効率よく設計されています。BSONドキュメント内の大きな要素には、スキャンを容易にするために長さフィールドがプレフィックスとして付けられます。長さプレフィックスと明示的な配列インデックスのために、BSONはJSONよりも多くのスペースを使用する場合があります。[2]
例
次のような文書は{"hello": "world"}次のように保存されます。
\x16\x00\x00\x00 // ドキュメントの合計サイズ
\x02 // 0x02 = 文字列型
hello\x00 // フィールド名
\x06\x00\x00\x00world\x00 // フィールド値 (値のサイズ、値、ヌル終端文字)
\x00 // 0x00 = タイプ EOO ('オブジェクトの終了')
参照
- データシリアル化形式の比較
- 翻訳
- CBOR
- スマイル(バイナリJSON)
- UBJSON
参考文献
- ^ 「ASP.NET Web API 2.1 での BSON サポート - ASP.NET 4.x」。Microsoft Docs。2014年 1 月 20 日。2010年 1 月 12 日に取得。
- ^ abc 「BSON(バイナリJSON)シリアル化」 。 2021年11月23日閲覧。
- ^ 「BSON実装プロジェクト」。2021年11月24日閲覧。
- ^ 「BSON (バイナリJSON): 仕様」。bsonspec.org 。 2021年11月24日閲覧。
- ^ 「NoSQL と MongoDB の紹介 | NoSQL とは? | InformIT」www.informit.com 。2018 年 1 月 17 日閲覧。
- ^ 「regex – MongoDB 正規表現を表すツール — PyMongo 3.6.0 ドキュメント」。api.mongodb.com。2016年 5 月 10 日のオリジナルからアーカイブ。2018年 1 月 17 日閲覧。
- ^ 「MongoDB Extended JSON ドキュメント」。docs.mongodb.com。2020年 5 月 3 日閲覧。
外部リンク
- 公式サイト
- MongoDBに含まれるbsondumpツール
