$jsonSchema
項目一覧
定義
構文
$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" } } } } } }
JSON Schema
MongoDB は、4 コア仕様 を含む JSON schema のドラフト をサポートしています および 検証仕様 、いくつか違いがあります。詳細については、「拡張機能と省略 」を参照してください。
JSON schema の詳細については、 公式ウェブサイト を参照してください。
利用可能なキーワード
JSON schema は、次のキーワードを指定できます。
注意
MongoDB は、JSON schema で使用可能なキーワードのサブセットを実装します。 省略の完全なリストについては、「 省略 」を参照してください。
Keyword | タイプ | 定義 | 動作 |
---|---|---|---|
additionalItems | 配列 | ブール値またはオブジェクト | オブジェクトの場合は、有効な JSON schema である必要があります |
additionalProperties | オブジェクト | ブール値またはオブジェクト |
デフォルトは |
allOf | すべての型 | JSON schema オブジェクトの配列 | フィールドは指定されたすべてのスキーマと一致する必要があります |
anyOf | すべての型 | JSON schema オブジェクトの配列 | フィールドは指定されたスキーマの 1 つ以上と一致する必要があります |
bsonType | すべての型 | 文字列エイリアスまたは文字列エイリアスの配列 | |
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 の実装では、「整数」型をサポートしていません。代わりに、 |
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
を使った例については、以下のページを参照してください。