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 एक वैध ऑपरेटर नहीं है