اعتبارسنجی (Validation)
در مونگو، «اسکیما (Schema)» ساختار سندهاست. به صورت پیش فرض، اسکیما انعطاف پذیر است. یعنی اجبار سخت وجود ندارد. اما با «اعتبارسنجی (Validation)» نظم می دهی. سپس همه سندها ساختار مشابهی دارند.
اعتبارسنجی با $jsonSchema
مونگو از «JSON Schema» پشتیبانی می کند. عملگر $jsonSchema الگوی سند را تعریف می کند. بنابراین نوع ها، فیلدهای ضروری، و توضیحات را مشخص می کنی. مثل تعیین قوانین انشا در کلاس.
گام های سریع
- کالکشن را با
validatorبساز. - داخل آن،
$jsonSchemaرا تعریف کن. - فیلدهای
requiredوpropertiesرا دقیق بنویس.
db.createCollection("posts", {
validator: {
$jsonSchema: {
bsonType: "object",
required: ["title", "body"],
properties: {
title: {
bsonType: "string",
description: "Title of post - Required."
},
body: {
bsonType: "string",
description: "Body of post - Required."
},
category: {
bsonType: "string",
description: "Category of post - Optional."
},
likes: {
bsonType: "int",
description: "Post like count. Must be an integer - Optional."
},
tags: {
bsonType: ["string"],
description: "Must be an array of strings - Optional."
},
date: {
bsonType: "date",
description: "Must be a date - Optional."
}
}
}
}
})
نکته: این قانون ها هنگام نوشتن سند بررسی می شوند. بنابراین خطاهای ساختاری زود دیده می شوند.
لینک های مفید داخلی
برای جستجو در متن، صفحه ایندکس گذاری/جستجو (Indexing/Search) را ببین. همچنین این صفحه اعتبارسنجی اسکیمای مونگو را بوکمارک کن.
جمع بندی سریع
$jsonSchemaساختار سندها را enforce می کند.requiredفیلدهای اجباری را تعیین می کند.bsonTypeنوع هر فیلد را محدود می کند.- قانون ها هنگام INSERT/UPDATE بررسی می شوند.