Docs Menu

スキーマ検証

スキーマ検証を使用すると、許可されるデータ型や値の範囲といったフィールドの検証ルールを作成できます。

MongoDB は柔軟なスキーマ モデルを使用します。つまり、コレクション内のドキュメントはデフォルトで同じフィールドやデータ型を持つ必要はありません。アプリケーション スキーマを確立しておくと、スキーマの検証機能により、意図しないスキーマ変更や不適切なデータ型がないことを確認できます。

スキーマ検証のニーズは、アプリケーションの使用方法によって異なります。アプリケーションの開発初期段階では、ユーザーがデータの整理方法を明確に把握していないため、スキーマ検証で不要な制限が課されることがあります。具体的には、コレクション内のフィールドは時間とともに変わる可能性があります。

スキーマ検証は、データの整理方法がよくわかっている確立されたアプリケーションに最も役立ちます。たとえば、次の状況でスキーマ検証を利用できます。

  • ユーザー コレクションの場合、password フィールドの保存形態が文字列のみとなるように徹底します。この検証により、ユーザーがパスワードを画像などの予期しないデータ タイプとして保存することを防ぎます。

  • セールス コレクションでは、item フィールドが店舗で販売しているアイテムのリストに含まれていることを確認してください。この検証により、販売データの入力時に商品名のスペルをうっかり間違えるミスがなくなります。

  • 学生コレクションでは、gpa フィールドが常に正の数値であることを確認します。この検証により、データ入力時のエラーを防止できます。

コレクションにスキーマ検証ルールを追加すると、

  • すべてのドキュメント挿入はルールに一致する必要があります。

  • スキーマ検証レベルは、ルールが既存のドキュメントとドキュメント更新にどのように適用されるかを定義します。詳細については、「既存ドキュメントの検証レベルの指定」を参照してください。

スキーマ検証ルールと一致しないコレクション内のドキュメントを検索するには、「スキーマに一致しないドキュメントの検索」を参照してください。

デフォルトでは、挿入または更新操作により無効なドキュメントが作成される場合、MongoDB は操作を拒否し、ドキュメントをコレクションに書込みません。

あるいは、無効なドキュメントを許可し、スキーマ違反が発生したときに警告をログに記録するように MongoDB を構成することもできます。

詳細については、「無効なドキュメントの処理方法の選択」を参照してください。

スキーマ検証に関連する一般的なタスクについては、以下のページを参照してください。

MongoDB の柔軟なスキーマ モデルの詳細については、「データモデリング」を参照してください。