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

Validationタブを表示
AtlasGoData ExplorerAtlas で、プロジェクトの ページにGoします。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Database見出しの下のData Explorerをクリックします。
Data Explorerが表示されます。
注意
また、Clusters ページに移動し、Shortcuts 見出しの下の Data Explorer をクリックします。
検証ルール
検証エディタでは、JSONスキーマ検証と、クエリ演算子を使用したクエリ式による検証をサポートしています。Updateボタンをクリックすると、Atlas の画面がアップデートされ、コレクション内の検証に合格したドキュメントと、検証に合格しなかったドキュメントが表示されます。
JSON スキーマ検証
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" } } } }
この検証では以下を指定します。
使用可能なすべての$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 マニュアルの「検証ルールの指定」を参照してください。
Tip
制限
Atlas Data Federation に接続している場合、Validation タブは使用できません。