この記事では、データの整合性を実施するために$ jsonschema検証装置を使用したMongodbのスキーマ検証について説明します。データ型、制約(MIN/MAXなど)、および必要なフィールドを指定するJSONスキーマを定義する方法を詳しく説明しています。スキーマde
MongoDBのスキーマ検証により、ドキュメントの構造と内容のルールを定義し、データの整合性と一貫性を確保できます。これは、 codecollection
または<code> collmod コマンド内の $ jsonschema
validatorによって達成されます。 $ jsonschema
Validatorは、JSONスキーマドキュメントを使用して、ドキュメントに必要なフィールド、データ型、制約を指定します。
たとえば、ユーザーに関する情報を保存しているとします。各ユーザードキュメントに firstName
(string)、a lastName
(string)、および age
(integer)があり、年齢は0〜120の間であることを確認します。 &quot; properties&quot;:{&quot; firstName&quot;:{&quot; bsontype&quot;:&quot; string&quot;、&quot; quot;:&quot;&quot;&quot;&quot; }、&quot; lastName&quot;:{&quot; bsontype&quot;:&quot; string&quot;&quot; description&quot;:&quot;&quot;&quot; }、&quot; age&quot;:{&quot; bsontype&quot;:&quot; int&quot;&quot; minimum&quot;:0、&quot; quot;&quot; quot; quot;&quot;&quot;&quot; }}、&quot; require; quot;:[&quot; firstName&quot;、&quot; lastName&quot;、&quot; age&quot; ]}
このスキーマは、ドキュメントがオブジェクトでなければならないことを指定し、必要なフィールドとそのデータ型を定義します。 必要
配列により、 firstName
、 lastName
、および age
がすべてのドキュメントに存在することを保証します。 mination
およびの最大
プロパティは、 age
フィールドを制約します。次に、 varmod> varmod> varmod
オプションを使用してこのスキーマを適用します。これらの規則に違反する文書は、Mongodbによって拒否されます。これにより、データベースがデータベースに入ることができなくなり、データの整合性が維持されます。
配列を使用します。 minimut> minigt> code> code> code> minlength>、
、 maxlength
、
(()、 maxlength
(code>)などの制約を使用します。制限。検証エラーを監視して、スキーマ設計の改善領域を特定します。ドキュメントがスキーマ検証に失敗した場合、MongoDBは挿入または更新操作を拒否します。アプリケーションはこれらのエラーを優雅に処理する必要があります。特定の方法は、ドライバーとプログラミング言語に依存します。一般に、検証障害とその理由を示すエラーメッセージが表示されます。
try ... catch
ブロック(または同等)検証エラーをキャッチするためにcatch block(または同等)検証エラーをキャッチします。この情報を使用して、ユーザーに役立つフィードバックを提供します。たとえば、年齢が許容範囲外である場合は、ユーザーに有効な範囲を伝えます。 $ jsonschema
Validatorは、事前に定義されたJSONスキーマキーワードとデータ型に依存しています。ただし、他の手段を使用して同様の機能を達成できます。 $ jsonschema
validatorでの挿入/更新中にカスタム検証を強制できませんが、ポストプロセッシングチェックと監査を実行して、インセンティティを特定できます。これには、データベースの照会とデータのチェックが含まれる場合があります。その後、レビューまたは修正のためにこれらの矛盾にフラグを立てることができます。アプリケーションレベルの検証は、堅牢なデータの整合性に重要であることを忘れないでください。 MongoDBのスキーマ検証は第一次防衛線を提供しますが、複雑な検証のニーズに完全に依存するべきではありません。
以上がMongoDBのスキーマ検証を使用してデータの整合性を実施するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。