MongoDB

MongoDB — اعتبارسنجی (Validation)

آخرین بروزرسانی: 1404/08/20

اعتبارسنجی (Validation)

در مونگو، «اسکیما (Schema)» ساختار سندهاست. به صورت پیش فرض، اسکیما انعطاف پذیر است. یعنی اجبار سخت وجود ندارد. اما با «اعتبارسنجی (Validation)» نظم می دهی. سپس همه سندها ساختار مشابهی دارند.

اعتبارسنجی با $jsonSchema

مونگو از «JSON Schema» پشتیبانی می کند. عملگر $jsonSchema الگوی سند را تعریف می کند. بنابراین نوع ها، فیلدهای ضروری، و توضیحات را مشخص می کنی. مثل تعیین قوانین انشا در کلاس.

گام های سریع

  1. کالکشن را با validator بساز.
  2. داخل آن، $jsonSchema را تعریف کن.
  3. فیلدهای 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 بررسی می شوند.