MongoDB Schema Validation

ஸ்கீமா சரிபார்ப்பைப் புரிந்துகொள்வது

Schema Validation

இயல்பாக MongoDB ஒரு நெகிழ்வான ஸ்கீமாவைக் கொண்டுள்ளது. இதன் பொருள் ஆரம்பத்தில் கடுமையான ஸ்கீமா சரிபார்ப்பு அமைக்கப்படவில்லை.

ஒரு கலெக்ஷனில் உள்ள அனைத்து ஆவணங்களும் ஒரே மாதிரியான கட்டமைப்பைப் பகிர்ந்து கொள்கின்றன என்பதை உறுதிப்படுத்த ஸ்கீமா சரிபார்ப்பு விதிகளை உருவாக்கலாம்.

Schema Validation

MongoDB JSON Schema சரிபார்ப்பை ஆதரிக்கிறது. $jsonSchema ஆபரேட்டர் எங்கள் ஆவண கட்டமைப்பை வரையறுக்க அனுமதிக்கிறது.

எடுத்துக்காட்டு

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."
        }
      }
    }
  }
})

இது தற்போதைய தரவுத்தளத்தில் posts கலெக்ஷனை உருவாக்கும் மற்றும் கலெக்ஷனுக்கான JSON Schema சரிபார்ப்பு தேவைகளைக் குறிப்பிடும்.

💡 விளக்கம்:

இந்த ஸ்கீமா சரிபார்ப்பு விதிகள் பின்வருவனவற்றை உறுதி செய்கின்றன:

  • title மற்றும் body புலங்கள் கட்டாயமாகும் (required)
  • title மற்றும் body சரம் வகையாக இருக்க வேண்டும்
  • category விருப்பமானது மற்றும் சரம் வகையாக இருக்க வேண்டும்
  • likes விருப்பமானது மற்றும் முழு எண் வகையாக இருக்க வேண்டும்
  • tags விருப்பமானது மற்றும் சரங்களின் வரிசையாக இருக்க வேண்டும்
  • date விருப்பமானது மற்றும் தேதி வகையாக இருக்க வேண்டும்

பயிற்சி

MongoDB இல் ஸ்கீமா சரிபார்ப்பை வரையறுக்க எந்த ஆபரேட்டர் பயன்படுத்தப்படுகிறது?

$validateSchema
✗ தவறு! $validateSchema என்பது செல்லுபடியாகும் ஆபரேட்டர் அல்ல
$schema
✗ தவறு! $schema என்பது செல்லுபடியாகும் ஆபரேட்டர் அல்ல
$jsonSchema
✓ சரி! $jsonSchema ஆபரேட்டர் JSON Schema சரிபார்ப்பை வரையறுக்க பயன்படுகிறது
$documentSchema
✗ தவறு! $documentSchema என்பது செல்லுபடியாகும் ஆபரேட்டர் அல்ல