Docs Menu
Docs Home
/
MongoDBマニュアル
/ / / /

$jsonSchema

項目一覧

  • 定義
  • 構文
  • JSON Schema
$jsonSchema

$jsonSchema 演算子は、指定された JSON schema を満たすドキュメントと一致します。

$jsonSchema 演算子式の構文は次のとおりです。

{ $jsonSchema: <JSON Schema object> }

JSON schema 4オブジェクトは、JSON schema 標準 の に 準拠して形式されます。

{ <keyword1>: <value1>, ... }

以下に例を挙げます。

{
$jsonSchema: {
required: [ "name", "major", "gpa", "address" ],
properties: {
name: {
bsonType: "string",
description: "must be a string and is required"
},
address: {
bsonType: "object",
required: [ "zipcode" ],
properties: {
"street": { bsonType: "string" },
"zipcode": { bsonType: "string" }
}
}
}
}
}

MongoDB は、4 コア仕様 を含む JSON schema のドラフト をサポートしています および 検証仕様 、いくつか違いがあります。詳細については、「拡張機能省略 」を参照してください。

JSON schema の詳細については、 公式ウェブサイト を参照してください。

JSON schema は、次のキーワードを指定できます。

注意

MongoDB は、JSON schema で使用可能なキーワードのサブセットを実装します。 省略の完全なリストについては、「 省略 」を参照してください

Keyword
タイプ
定義
動作
additionalItems
配列
ブール値またはオブジェクト
オブジェクトの場合は、有効な JSON schema である必要があります
additionalProperties
オブジェクト
ブール値またはオブジェクト

true の場合、追加のフィールドが使用できます。false の場合は使用できません。有効な JSON schema オブジェクトを指定した場合、スキーマに対して追加のフィールドを検証する必要があります。

デフォルトは true です。

allOf
すべての型
JSON schema オブジェクトの配列
フィールドは指定されたすべてのスキーマと一致する必要があります
anyOf
すべての型
JSON schema オブジェクトの配列
フィールドは指定されたスキーマの 1 つ以上と一致する必要があります
bsonType
すべての型
文字列エイリアスまたは文字列エイリアスの配列
演算子に使用されるのと同じ string$type エイリアス を受け付けます
dependencies
オブジェクト
オブジェクト
フィールドまたはスキーマの依存関係を記述します
説明
該当なし
string
スキーマを説明し、検証に影響を与えない文字列。MongoDB 5.1 以降では、description フィールドが指定されている場合、ドキュメントの検証に失敗したときに MongoDB はエラー出力に description を含めます。
列挙
すべての型
値の配列
フィールドで使用可能なすべての値を列挙します
exclusiveMaximum
数値
ブール値
true でフィールドが数値の場合、maximum は最大値(最大値を含まない)です。それ以外の場合は、最大値(最大値を含む)です。
exclusiveMinimum
数値
ブール値
true の場合、minimum は最小値(最小値を含まない)です。それ以外の場合は、最小値(最小値を含む)です。
items
配列
オブジェクトまたは配列
有効な JSON schema、または有効な JSON schema の配列である必要があります
maximum
数値
数値
フィールドの最大値を示します
maxItems
配列
integer
配列の最大長を示します
maxLength
string
integer
フィールドの最大長を示します
maxProperties
オブジェクト
integer
フィールドのプロパティの最大数を示します
minimum
数値
数値
フィールドの最小値を示します
minItems
配列
integer
配列の最小長を示します
minLength
string
integer
フィールドの最小長を示します
minProperties
オブジェクト
integer
フィールドのプロパティの最小数を示します
multipleOf
数値
数値
フィールドは、この値の倍数である必要があります
ではない
すべての型
JSON schema オブジェクト
フィールドはスキーマと一致しない必要があります
oneOf
すべての型
JSON schema オブジェクトの配列
フィールドは指定されたスキーマの 1 つと正確に一致する必要があります
パターン
string
正規表現を含む文字列
フィールドは正規表現と一致する必要があります
patternProperties
オブジェクト
オブジェクト
properties 要件に加えて、このオブジェクトの各プロパティ名は有効な正規表現である必要があります
properties
オブジェクト
オブジェクト
各値も有効な JSON schema オブジェクトである有効な JSON schema
必須
オブジェクト
一意の文字列の配列
オブジェクトのプロパティ セットには、配列内の指定された要素がすべて含まれている必要があります。
title
該当なし
string
影響のない記述的な表題用の文字列。
タイプ
すべての型
文字列または一意の文字列の配列

フィールドの使用可能な JSON タイプを列挙します。使用可能なタイプは、「オブジェクト」、「配列」、「数値」、「ブール値」、「文字列」、および「null」です。

MongoDB の JSON schema の実装では、「整数」型をサポートしていません。代わりに、 bsonType キーワードならびに「int」型または「long」型を使用してください。

uniqueItems
配列
ブール値
true の場合、配列内の各項目は一意である必要があります。それ以外の場合は、一意制約は適用できません。

MongoDB のJSON schemaの実装には、bsonTypeキーワードの追加が含まれており、これにより、$jsonSchema 演算子ですべての BSON 型を使用できます。bsonType は、$type 演算子に使用されるのと同じ文字列エイリアスを受け付けます。

MongoDB の JSON schema の実装では、以下はサポートされていません。

  • ハイパーテキストの定義 4JSON schema 仕様のドラフト における。

  • 以下のキーワード

    • $ref

    • $schema

    • default

    • definitions

    • format

    • id

  • integer 型。bsonTypeキーワードとともに BSON 型の int または long を使用する必要があります。

  • JSON schema のハイパーメディアおよびリンクするプロパティ(JSON リファレンスと JSON ポインターの使用を含む)。

  • 不明なキーワード。

$jsonSchema を使った例については、以下のページを参照してください。

戻る

$expr