Data Formats
項目一覧
MongoDB は、 BSON という形式でデータを保存します。 は、構造的には JSON オブジェクトに似ていますが、追加のデータ型をサポートし、 バイナリ エンコーディングを使用します。BSON はコンピューターに対しては効率的ですが、人間が判読できないため、直接操作することはできません。
代わりに、データ API は、リクエストと応答のデータを表すために JSON と EJSON の 2 つの形式を使用します。
すべての生成済み Data API エンドポイントに対して 1 つのデフォルトの戻り値の型を定義し、カスタム エンドポイントごとに個別に定義します。 受信リクエストでは、 Accept
ヘッダーを使用してデフォルトを上書きする優先データ形式を指定することもできます。
例
このドキュメントは、JSON または EJSON で表現でき、JSON と EJSON で表現される BSON types を示しています。
{ "Name": "Mango", "Year": { "$numberLong": "2022" }, "Weight": { "$numberDecimal": "9823.1297" }, "Date": { "$date": { "$numberLong": "1641954803067" } } }
{ "Name": "Mango", "Year": 2022, "Weight": "9823.1297", "Date": "2022-01-12T02:33:23.067Z" }
すべての生成済み Data API エンドポイントに対して 1 つのデフォルトの戻り値の型を定義し、カスタム エンドポイントごとに個別に定義します。 受信リクエストでは、 Accept
ヘッダーを使用してデフォルトを上書きする優先データ形式を指定することもできます。
標準JSON (アプリケーション/ JSON )
JSON形式は、どのツールも解析して理解できる標準タイプを使用します。 ただし、JSON ではすべての BSON types を表現できないため、JSON 応答で一部のフィールドのタイプ情報が失われる場合があります。 たとえば、BSON には 32 ビット整数と 64 ビット浮動小数点数の異なるタイプがありますが、JSON 応答は両方をnumber
として表します。
標準および緩和EJSON (アプリケーション/ EJSON )
MongoDB Extended JSON の短縮形である EJSON 形式は、対応する JSON タイプがない BSON データを表すために構造化フィールドを使用する標準 JSON のスーパーセットです。これはデータを完全に表しますが、クライアントが EJSON の扱い方を理解している必要があります。
EJSON には次の 2 つのバリアントがあります。
標準型 EJSONは、読みやすさと相互運用性を犠牲にして、型の保存を重視した冗長な構造を使用します。 これは BSON types を完全に表しますが、それを操作するにはライブラリまたはカスタム コードを使用する必要がある場合があります。
緩和型 EJSONは、読み取りと操作が簡単なより圧縮された構造を使用しますが、一部の BSON types のタイプ情報が失われる場合があります。 たとえば、挿入されたドキュメント内の数値フィールドは、予想とは異なる数値 BSON 型として推測される場合があります。
リクエストでは、標準または緩和ベースの EJSON のいずれかを使用できます。 EJSON を返すように構成されているデータ API エンドポイントは、常に標準の EJSON を返します。
BSON types
このセクションでは、データ API がサポートする BSON types を一覧表示し、各タイプが JSON および EJSON 形式で表される方法を示します。
配列
EJSON | JSON | ||
---|---|---|---|
標準型 EJSON
緩和型 EJSON 標準と同じ |
|
バイナリ
EJSON | JSON | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
標準型 EJSON
緩和型 EJSON 標準と同じ |
|
日付
EJSON | JSON | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
標準型 EJSON
緩和型 EJSON
|
|
Decimal128
EJSON | JSON | ||
---|---|---|---|
標準型 EJSON
緩和型 EJSON 標準と同じ |
|
ドキュメント
EJSON | JSON | ||
---|---|---|---|
標準型 EJSON
緩和型 EJSON 標準と同じ |
|
Double
EJSON | JSON | |||
---|---|---|---|---|
標準型 EJSON
緩和型 EJSON
|
|
Int32
EJSON | JSON | |||
---|---|---|---|---|
標準型 EJSON
緩和型 EJSON
|
|
Int64
EJSON | JSON | ||
---|---|---|---|
標準型 EJSON
緩和型 EJSON 標準と同じ |
|
Max key
EJSON | JSON | ||
---|---|---|---|
標準型 EJSON
緩和型 EJSON 標準と同じ |
同等の JSON はありません |
MinKey
EJSON | JSON | ||
---|---|---|---|
標準型 EJSON
緩和型 EJSON 標準と同じ |
同等の JSON はありません |
ObjectId
EJSON | JSON | ||
---|---|---|---|
標準型 EJSON
緩和型 EJSON 標準と同じ |
|
正規表現
EJSON | JSON | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
標準型 EJSON
緩和型 EJSON 標準と同じ |
|
タイムスタンプ
EJSON | JSON | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
標準型 EJSON
緩和型 EJSON 標準と同じ |
|