Docs Menu
Docs Home
/ /
Atlas App Services
/

Data Formats

項目一覧

  • 標準JSON (アプリケーション/ JSON )
  • 標準および緩和EJSON (アプリケーション/ EJSON )
  • BSON types
  • 配列
  • バイナリ
  • 日付
  • Decimal128
  • ドキュメント
  • Double
  • Int32
  • Int64
  • Max key
  • MinKey
  • ObjectId
  • 正規表現
  • タイムスタンプ

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 ではすべての BSON types を表現できないため、JSON 応答で一部のフィールドのタイプ情報が失われる場合があります。 たとえば、BSON には 32 ビット整数と 64 ビット浮動小数点数の異なるタイプがありますが、JSON 応答は両方をnumberとして表します。

MongoDB Extended JSON の短縮形である EJSON 形式は、対応する JSON タイプがない BSON データを表すために構造化フィールドを使用する標準 JSON のスーパーセットです。これはデータを完全に表しますが、クライアントが EJSON の扱い方を理解している必要があります。

EJSON には次の 2 つのバリアントがあります。

  • 標準型 EJSONは、読みやすさと相互運用性を犠牲にして、型の保存を重視した冗長な構造を使用します。 これは BSON types を完全に表しますが、それを操作するにはライブラリまたはカスタム コードを使用する必要がある場合があります。

  • 緩和型 EJSONは、読み取りと操作が簡単なより圧縮された構造を使用しますが、一部の BSON types のタイプ情報が失われる場合があります。 たとえば、挿入されたドキュメント内の数値フィールドは、予想とは異なる数値 BSON 型として推測される場合があります。

リクエストでは、標準または緩和ベースの EJSON のいずれかを使用できます。 EJSON を返すように構成されているデータ API エンドポイントは、常に標準の EJSON を返します。

このセクションでは、データ API がサポートする BSON types を一覧表示し、各タイプが JSON および EJSON 形式で表される方法を示します。

EJSON
JSON

標準型 EJSON

[ <elements> ]

緩和型 EJSON

標準と同じ

[ <elements> ]
EJSON
JSON

標準型 EJSON

{
"$binary": {
"base64": "e67803a39588be8a95731a21e27d7391",
"subType": "05"
}
}

緩和型 EJSON

標準と同じ

{
"Subtype": 5,
"Data": "e67803a39588be8a95731a21e27d7391"
}
EJSON
JSON

標準型 EJSON

{
"$date": {
"$numberLong": "1641954803067"
}
}

緩和型 EJSON

{
"$date": "2022-01-12T02:33:23.067Z"
}
"2022-01-12T02:33:23.067Z"
EJSON
JSON

標準型 EJSON

{ "$numberDecimal": "9823.1297" }

緩和型 EJSON

標準と同じ

"9823.1297"
EJSON
JSON

標準型 EJSON

{ <content> }

緩和型 EJSON

標準と同じ

{ <content> }
EJSON
JSON

標準型 EJSON

{ "$numberDouble": "10.5" }

緩和型 EJSON

10.5
10.5
EJSON
JSON

標準型 EJSON

{ "$numberInt": "10" }

緩和型 EJSON

10
10
EJSON
JSON

標準型 EJSON

{ "$numberLong": "50" }

緩和型 EJSON

標準と同じ

50
EJSON
JSON

標準型 EJSON

{ "$maxKey": 1 }

緩和型 EJSON

標準と同じ

{}

同等の JSON はありません

EJSON
JSON

標準型 EJSON

{ "$minKey": 1 }

緩和型 EJSON

標準と同じ

{}

同等の JSON はありません

EJSON
JSON

標準型 EJSON

{ "$oid":"5d505646cf6d4fe581014ab2" }

緩和型 EJSON

標準と同じ

"5d505646cf6d4fe581014ab2"
EJSON
JSON

標準型 EJSON

{
"$regularExpression": {
"pattern":"^H",
"options":"i"
}
}

緩和型 EJSON

標準と同じ

{
"Pattern": "^H",
"Options": "i"
}
EJSON
JSON

標準型 EJSON

{
"$timestamp": {
"t":1565545664,
"i":1
}
}

緩和型 EJSON

標準と同じ

{
"T": 1565545664,
"I": 1
}

戻る

データ API の例