ホームページ > ウェブフロントエンド > jsチュートリアル > JSONスキーマ検証とMongoDBの表現式クエリ構文3.6

JSONスキーマ検証とMongoDBの表現式クエリ構文3.6

William Shakespeare
リリース: 2025-02-15 12:52:11
オリジナル
561 人が閲覧しました

JSON Schema Validation & Expressive Query Syntax in MongoDB 3.6

MongoDB 3.6の重要な改善:JSONスキーマ検証と効率的なクエリ構文MongoDB 3.6は、JSONスキーマ検証を導入することにより、データの整合性と制御機能を大幅に向上させます。以前の文書検証と比較して、JSONスキーマの検証はより強力で柔軟性があり、配列内の強制パターンをサポートし、不正なプロパティを制限します。

JSONスキーマ検証の中心的な利点:

オペレーターを使用してください:

    では、タイプミスまたは不正なプロパティのドキュメントの挿入を防ぐために、タイプ、必要なステータス、追加のプロパティなどのプロパティの詳細な仕様が許可されています。
  • $jsonSchema複雑な構造をサポートします:たとえば、順序の
  • 配列に必要なフィールドが含まれ、指定されたデータ型と制約に準拠していることを確認できます。
  • 効率的なクエリの構文と組み合わされたlineitemsアプリケーションレイヤーからデータベースレイヤーに大量のビジネスロジックを転送し、コードベースを簡素化し、データ処理のエラーと矛盾を減らします。 効率的なクエリ構文は、集約された式の強力な関数をクエリ言語に導入し、複雑なビジネス検証ルールと動的なデータ検査に便利にします。
  • ドキュメントの検証からJSONスキーマ検証に移行します

次の例は、ドキュメント検証をJSONスキーマ検証にアップグレードする方法を示しています。 最初に、コレクションを作成し、ドキュメントを使用して構成を確認します。

これにより、

が文字列であり、

が小数点以下数字であることが保証されます。ただし、スペルミスまたは不正な属性の追加を防ぐことはできません。 orders

この問題を解決するには、
db.createCollection("orders", {
  validator: {
    item: { $type: "string" },
    price: { $type: "decimal" }
  }
});
ログイン後にコピー
オペレーターを使用してください

未定義のプロパティの追加を防ぐために、itemセキュリティをさらに強化することができます。 price

複雑なデータ構造の処理(たとえば:$jsonSchema配列)

db.runCommand({
  collMod: "orders",
  validator: {
    $jsonSchema: {
      bsonType: "object",
      required: ["item", "price"],
      properties: {
        item: { bsonType: "string" },
        price: { bsonType: "decimal" }
      }
    }
  }
});
ログイン後にコピー

JSONスキーマ検証では、additionalProperties: false配列内の各要素に必要なフィールドが含まれ、指定されたデータ型と制約に準拠するようにするなど、ドキュメント内の複雑な構造の検証が可能になります。 例は次のとおりです

より複雑なビジネスルールの検証に効率的なクエリ構文を使用lineitems

効率的なクエリ構文を使用すると、

オペレーターを使用して動的検証ルールを作成できます。たとえば、lineitems

// ... (省略部分代码,与原文类似) ...
lineitems: {
    bsonType: ["array"],
    minItems: 1,
    maxItems: 10,
    items: {
        required: ["unit_price", "sku", "quantity"],
        bsonType: "object",
        additionalProperties: false,
        // ... (省略部分代码,与原文类似) ...
    }
}
// ... (省略部分代码,与原文类似) ...
ログイン後にコピー
に等しいかどうかを確認します。

を組み合わせて、複雑なビジネスロジックルールをデータベース検証に統合して、データの正確性と一貫性を向上させることができます。

$exprtotalWithVAT概要total * (1 VAT)

MongoDB 3.6のJSONスキーマの検証と効率的なクエリ構文は、開発者にデータの整合性と制御機能を強化し、アプリケーションコードの簡素化、エラーの削減、データ処理効率の改善を提供します。 これにより、MongoDBは、大規模で複雑なアプリケーションとデータの処理に適しています。

以上がJSONスキーマ検証とMongoDBの表現式クエリ構文3.6の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート