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

検証ルール
検証エディターでは、JSON Schema 検証および クエリ演算子を使用した検証がサポートされています。
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" } } } }
この検証では以下を指定します。
使用可能なすべての$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 Action と Validation Levelを指定します。
検証アクションは、
warnのみで無効なドキュメントを受け入れるか、errorを出して無効なドキュメントを拒否するかを決定します。検証レベルは、MongoDB が既存のドキュメントに検証ルールをどの程度厳密に適用するかを決定します。
Strict検証により、すべてのドキュメントの挿入とアップデートにルールが適用されます。Moderate検証は、新しいドキュメントと既存の有効なドキュメントにのみ適用されます。既存の無効なドキュメントは影響を受けません。
検証アクションとレベルの詳細については、MongoDB マニュアルの「検証ルールの指定」を参照してください。
はじめる
制限
Atlas Data Federation に接続している場合、Validation タブは使用できません。
Compass は、1000 を超える異なるフィールドを持つスキーマを検証できません。1000 を超える異なるフィールドを持つスキーマを検証しようとすると、Compass はエラーを返します。
MongoDB Compass Readonly Editionでは、検証ルールの表示のみが可能です。検証ルールの作成および編集は許可されていません。