MongoDB 3.6の重要な改善:JSONスキーマ検証と効率的なクエリ構文MongoDB 3.6は、JSONスキーマ検証を導入することにより、データの整合性と制御機能を大幅に向上させます。以前の文書検証と比較して、JSONスキーマの検証はより強力で柔軟性があり、配列内の強制パターンをサポートし、不正なプロパティを制限します。
JSONスキーマ検証の中心的な利点:
次の例は、ドキュメント検証をJSONスキーマ検証にアップグレードする方法を示しています。
最初に、コレクションを作成し、ドキュメントを使用して構成を確認します。
これにより、 が小数点以下数字であることが保証されます。ただし、スペルミスまたは不正な属性の追加を防ぐことはできません。
未定義のプロパティの追加を防ぐために、 複雑なデータ構造の処理(たとえば: JSONスキーマ検証では、 より複雑なビジネスルールの検証に効率的なクエリ構文を使用 オペレーターを使用して動的検証ルールを作成できます。たとえば、
と
MongoDB 3.6のJSONスキーマの検証と効率的なクエリ構文は、開発者にデータの整合性と制御機能を強化し、アプリケーションコードの簡素化、エラーの削減、データ処理効率の改善を提供します。 これにより、MongoDBは、大規模で複雑なアプリケーションとデータの処理に適しています。 では、タイプミスまたは不正なプロパティのドキュメントの挿入を防ぐために、タイプ、必要なステータス、追加のプロパティなどのプロパティの詳細な仕様が許可されています。
$jsonSchema
複雑な構造をサポートします:たとえば、順序のlineitems
アプリケーションレイヤーからデータベースレイヤーに大量のビジネスロジックを転送し、コードベースを簡素化し、データ処理のエラーと矛盾を減らします。 効率的なクエリ構文は、集約された式の強力な関数をクエリ言語に導入し、複雑なビジネス検証ルールと動的なデータ検査に便利にします。 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" }
}
}
}
});
additionalProperties: false
配列内の各要素に必要なフィールドが含まれ、指定されたデータ型と制約に準拠するようにするなど、ドキュメント内の複雑な構造の検証が可能になります。 例は次のとおりです
lineitems
lineitems
:// ... (省略部分代码,与原文类似) ...
lineitems: {
bsonType: ["array"],
minItems: 1,
maxItems: 10,
items: {
required: ["unit_price", "sku", "quantity"],
bsonType: "object",
additionalProperties: false,
// ... (省略部分代码,与原文类似) ...
}
}
// ... (省略部分代码,与原文类似) ...
$expr
totalWithVAT
概要total * (1 VAT)
以上がJSONスキーマ検証とMongoDBの表現式クエリ構文3.6の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。