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