Docs Menu
Docs Home
/
Compass
/

スキーマの検証ルールを設定する

項目一覧

  • 検証タブ
  • 検証ルール
  • 検証アクションとレベル
  • はじめる
  • 制限
  • 詳細

Validationタブでは、コレクションのスキーマ検証ルールを管理できます。

スキーマの検証により、特定の形状に合致する、フィールド内の特定の範囲の値のみ許可するなど、コレクション内のすべてのドキュメントが一連の所定のルールに従っていることを確認することができます。

検証ビュー
クリックして拡大します

検証エディタでは、JSONスキーマの検証と、クエリ演算子を使用する検証を使用したクエリ式による検証をサポートしています。

$jsonSchema 演算子は、検証ルールを指定するためのさまざまなキーワードをサポートしています。例:

  • required配列はドキュメント内の必須フィールドを定義します。

  • properties オブジェクトは、特定のドキュメントフィールドのルールを定義します。

既存のサンプルデータを分析してJSONスキーマを生成するには、 「 検証ルールの生成 」を参照してください。

次の検証例を検討します。

{
$jsonSchema: {
bsonType: "object",
required: [ "address", "borough", "name" ],
properties: {
address: {
bsonType: "object",
properties: {
coord: {
bsonType: "array",
items: [
{
bsonType: "double",
minimum: -180,
maximum: 180,
exclusiveMaximum: false,
description: "must be a number in [ -180, 180 ]"
},
{
bsonType: "double",
minimum: -90,
maximum: 90,
exclusiveMaximum: false,
description: "must be a number in [ -90, 90 ]"
}
]
}
},
description: "must be an object"
},
borough: {
bsonType: "string",
enum: [ "Manhattan", "Brooklyn", "Queens", "Bronx", "Staten Island" ],
description: "must be one of the enum strings"
}
}
}
}

この検証では以下を指定します。

  • 必須フィールドのリスト。

  • すべての必須フィールドの bsonType

  • address.coord 配列の最小値と最大値。

  • enumを使用した、 boroughフィールドで許容される値。

使用可能なすべての$jsonSchemaキーワードについては、MongoDB マニュアルの $jsonSchema ページを参照してください。

クエリ演算子を使用して検証を指定することもできます。ただし、次のクエリ演算子は除外されます。 $near$nearSphere$text 、および$where

{
$or: [
{ name: { $type: "string" } },
{ borough: {
bsonType: "string",
enum: [ "Manhattan", "Brooklyn", "Queens", "Bronx", "Staten Island" ],
description: "must be one of the enum strings"
} }
]
}

この検証を利用する場合、以下の条件のいずれか1つを満たす必要があります。

  • name フィールドは BSON 型の文字列である必要があります。

  • borough フィールドは列挙文字列の 1 つである必要があります。

上部で、 Validation ActionValidation Levelを指定します。

  • 検証アクションは、warn のみで無効なドキュメントを受け入れるか、error を出して無効なドキュメントを拒否するかを決定します。

  • 検証レベルは、MongoDB が既存のドキュメントに検証ルールをどの程度厳密に適用するかを決定します。

    • Strict 検証により、すべてのドキュメントの挿入とアップデートにルールが適用されます。

    • Moderate 検証は、新しいドキュメントと既存の有効なドキュメントにのみ適用されます。既存の無効なドキュメントは影響を受けません。

検証アクションとレベルの詳細については、MongoDB マニュアルの「検証ルールの指定」を参照してください。

Atlas Data Federation に接続している場合、Validation タブは使用できません。

Compass は、1000 を超える明確なフィールドを持つスキーマを検証できません。 1000 を超える個別のフィールドを含むスキーマを検証しようとすると、Compass はエラーを返します。

MongoDB Compass Readonly Editionでは、検証ルールの表示のみが可能です。検証ルールの作成および編集は許可されていません。

戻る

パフォーマンスインサイト