スキーマ検証
スキーマ検証を使用すると、許可されるデータ型や値の範囲といったフィールドの検証ルールを作成できます。
MongoDB は柔軟なスキーマ モデルを使用します。つまり、コレクション内のドキュメントはデフォルトで同じフィールドやデータ型を持つ必要はありません。アプリケーション スキーマを確立しておくと、スキーマの検証機能により、意図しないスキーマ変更や不適切なデータ型がないことを確認できます。
MongoDB Atlas でホストされる配置向けに UI でのスキーマ検証を実装できます。
スキーマ検証のユースケース
スキーマ検証のニーズは、アプリケーションの使用方法によって異なります。アプリケーションの開発初期段階では、ユーザーがデータの整理方法を明確に把握していないため、スキーマ検証で不要な制限が課されることがあります。具体的には、コレクション内のフィールドは時間とともに変わる可能性があります。
スキーマ検証は、データの整理方法がよくわかっている確立されたアプリケーションに最も役立ちます。たとえば、次の状況でスキーマ検証を利用できます。
ユーザー コレクションの場合、
password
フィールドが文字列としてのみ保存されていることを確認します。この検証により、ユーザーがパスワードを画像などの予期しないデータ タイプとして保存することを防ぎます。セールス コレクションでは、
item
フィールドが店舗で販売しているアイテムのリストに含まれていることを確認してください。この検証により、販売データの入力時に商品名のスペルをうっかり間違えるミスがなくなります。学生コレクションでは、
gpa
フィールドが常に正の数値であることを確認します。この検証により、データ入力時のエラーを防止できます。
MongoDB による検証チェックのタイミング
コレクションにスキーマ検証ルールを追加すると、
すべてのドキュメント挿入はルールに一致する必要があります。
スキーマ検証レベルによって、既存ドキュメントとドキュメントの更新へのルールの適用方法が明確になります。詳細については、「既存ドキュメントの検証レベルの指定」を参照してください。
スキーマ検証ルールと一致しないコレクション内のドキュメントを検索するには、「スキーマに一致しないドキュメントの検索」を参照してください。
ドキュメントの検証失敗の影響
デフォルトでは、挿入または更新操作により無効なドキュメントが作成される場合、MongoDB は操作を拒否し、ドキュメントをコレクションに書込みません。
あるいは、無効なドキュメントを許可し、スキーマ違反が発生したときに警告をログに記録するように MongoDB を構成することもできます。
詳細については、「無効なドキュメントの処理方法の選択」を参照してください。
タスク
スキーマ検証に関連する一般的なタスクについては、以下のページを参照してください。
詳細
MongoDB の柔軟なスキーマ モデルの詳細については、「データ モデリングの概要 」を参照してください。