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