Docs Menu
Docs Home
/
MongoDB Compass
/

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

項目一覧

  • 検証タブ
  • 検証ルール
  • 検証アクションとレベル
  • 制限

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

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

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

検証エディタでは、 JSON スキーマの検証と、 クエリ演算子を使用したクエリ式による検証をサポートしています。Updateボタンをクリックすると、Compass の画面がアップデートされ、コレクション内の検証に合格したドキュメントと、検証に合格しなかったドキュメントが表示されます。

JSON スキーマ検証を指定するには、 $jsonSchema演算子を使用します。

{
$jsonSchema: {
required: ['name', 'borough'], // the name and borough fields are required
properties: {
cuisine: {
bsonType: "string",
description: "must be a string"
}
}
}
}

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

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

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

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

{
$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 マニュアルの「検証ルールの指定」を参照してください。

Tip

以下も参照してください。

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

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

戻る

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