スキーマ検証を使用すると、許可されるデータ型や値の範囲といったフィールドの検証ルールを作成できます。
MongoDB は柔軟なスキーマモデルを採用し、デフォルトでは 、コレクション内のドキュメントに同じフィールドまたはデータ型は必要ありません。アプリケーションスキーマを確立 したら、スキーマ検証を使用して、意図しないスキーマ変更やデータ型エラーを防ぎます。
MongoDB Atlas でホストされる配置向けに UI でのスキーマ検証を実装できます。
スキーマ検証のユースケース
スキーマ検証ニーズは、アプリケーションがデータをどのように整理するかによって異なります。スキーマ検証機能は、定義されたデータ構造を持つ確立されたアプリケーションに最も役立ちます。
注意
スキーマ検証ルールも柔軟であるため、アプリケーションでその必要がある場合を除き、ドキュメント内のすべてのフィールドをカバーする必要はありません。
たとえば、次の状況でスキーマ検証を利用できます。
eventsコレクションの場合、start_dateフィールドにstring ではなく日付のみが保存されていることを確認します。コンシステント タイプ は、アプリケーションの接続で予期しない値を防ぐために使用されます。storeコレクションの場合は、accepted_credit_cardsフィールドに["Visa", "MasterCard", "American Express"]などの許容カードタイプのみが含まれていることを確認します。このルールにより、ユーザーがサポートされていない値を入力するのを防止します。studentsコレクションの場合、gpaフィールドが常に正の浮動小数点数であることを確認します。このルールにより、データ入力エラーを防止できます。
MongoDB による検証チェックのタイミング
コレクションにスキーマ検証ルールを追加すると、
すべてのドキュメント挿入はルールに一致する必要があります。
検証レベルによって、既存ドキュメントとアップデートへのルールの適用方法が決まります。詳しくは、 既存ドキュメントの検証レベルを指定する を参照してください。
スキーマ検証ルールと一致しないコレクション内のドキュメントを検索するには、「スキーマに一致しないドキュメントの検索」を参照してください。
ドキュメントの検証失敗の影響
デフォルトでは 、 MongoDB は、無効なドキュメントを生成する挿入または更新操作を拒否します。
あるいは、スキーマ違反の発生時に、無効なドキュメントを許可し、警告をログようにMongoDBを構成することもできます。
詳細については、「無効なドキュメントの処理方法の選択」を参照してください。
はじめる
スキーマ検証タスクについては、以下のページを参照してください。
詳細
MongoDB の柔軟なスキーマモデルの詳細については、MongoDBのデータモデリングを参照してください。