कलेक्शन में Validator जोड़ना
शिक्षार्थी आवश्यक फ़ील्ड और डेटा प्रकार लागू करने के लिए createCollection और collMod का उपयोग करके JSON Schema validator जोड़ेंगे।
कलेक्शन में Validator जोड़ना, CoddyKit पर MongoDB Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह MongoDB Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। MongoDB Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
Schema Validation क्यों महत्वपूर्ण है
MongoDB डिफ़ॉल्ट रूप से Schema के मामले में लचीला है—किसी भी आकार के दस्तावेज़ को डाला जा सकता है। विकास के दौरान यह उपयोगी है, लेकिन उत्पादन डेटाबेस को गलत आकार के डेटा से बचाने के लिए सुरक्षा-नियंत्रण की आवश्यकता होती है। MongoDB का Schema validation फ़ीचर आपको किसी कलेक्शन से JSON Schema नियमों का समूह जोड़ने देता है, ताकि केवल सही ढंग से बने दस्तावेज़ ही डाले या अपडेट किए जा सकें और डेटा की गुणवत्ता से जुड़ी समस्याएँ डेटाबेस स्तर पर ही पकड़ी जा सकें, इससे पहले कि वे आगे फैलें।
Validation भाषा के रूप में JSON Schema
MongoDB validation नियम व्यक्त करने के लिए उद्योग-मानक JSON Schema विनिर्देशन (ड्राफ्ट 4) का उपयोग करता है। आप एक $jsonSchema ऑब्जेक्ट परिभाषित करते हैं, जो बताता है कि कौन-से फ़ील्ड आवश्यक हैं, उनका प्रकार क्या होना चाहिए और कौन-सी अतिरिक्त पाबंदियाँ लागू होंगी। JSON Schema जहाँ भी दिखाई देता है, वहाँ यही प्रारूप उपयोग होता है—OpenAPI विनिर्देशों, फ़ॉर्म लाइब्रेरी और अब MongoDB validators में भी।
कलेक्शन बनाते समय Validator जोड़ना
db.createCollection() को कॉल करते समय validator विकल्प पास करें। Validator में एक $jsonSchema दस्तावेज़ होता है। नीचे दिए गए उदाहरण में आवश्यक है कि हर users दस्तावेज़ में name (string) और email (string) हों, जबकि age (integer) वैकल्पिक हो।
db.createCollection('users', {
validator: {
$jsonSchema: {
bsonType: 'object',
required: ['name', 'email'],
properties: {
name: { bsonType: 'string', description: 'must be a string and is required' },
email: { bsonType: 'string', description: 'must be a string and is required' },
age: { bsonType: 'int', minimum: 0, description: 'optional, must be a non-negative int' }
}
}
}
});मौजूदा कलेक्शन में Validator जोड़ना
पहले से मौजूद और संभवतः डेटा रखने वाले कलेक्शन में Validator जोड़ने या उसे अपडेट करने के लिए collMod (कलेक्शन संशोधन) कमांड का उपयोग करें। डिफ़ॉल्ट रूप से यह मौजूदा दस्तावेज़ों को validate नहीं करता—यह केवल भविष्य में होने वाले लेखन पर लागू होता है, जब तक कि आप validationLevel भी न बदलें।
db.runCommand({
collMod: 'users',
validator: {
$jsonSchema: {
bsonType: 'object',
required: ['name', 'email'],
properties: {
name: { bsonType: 'string' },
email: { bsonType: 'string' }
}
}
}
});Validation विफल होने पर क्या होता है
डिफ़ॉल्ट रूप से, यदि कोई दस्तावेज़ Validator का उल्लंघन करता है, तो MongoDB लेखन को अस्वीकार करता है और यह error देता है: Document failed validation। Error में details फ़ील्ड शामिल होता है, जो बताता है कि कौन-सा नियम टूटा, जिससे गलत दस्तावेज़ का पता लगाना और उसे ठीक करना आसान हो जाता है। Insert या update पूरी तरह वापस कर दिया जाता है—आंशिक लेखन नहीं होता।
// This insert violates the validator — email is missing
try {
db.users.insertOne({ name: 'Bob' });
} catch (err) {
console.error(err.errInfo.details);
// Output: required field 'email' is missing
}वर्तमान Validator देखना
किसी कलेक्शन से जुड़े Validator की जाँच करने के लिए db.getCollectionInfos() का उपयोग करें या system.js namespace को क्वेरी करें। लौटाए गए दस्तावेज़ में options.validator के अंतर्गत Validator का पूरा विनिर्देशन शामिल होता है, जिससे आप अलग-अलग वातावरणों के Validators की समीक्षा, प्रतिलिपि या तुलना कर सकते हैं।
// List all collections and their options, including validators
const info = db.getCollectionInfos({ name: 'users' });
console.log(JSON.stringify(info[0].options.validator, null, 2));Validator हटाना
किसी कलेक्शन से सभी validation हटाने के लिए खाली Validator ऑब्जेक्ट के साथ collMod चलाएँ। इससे कलेक्शन अपनी डिफ़ॉल्ट, Schema-विहीन स्थिति में लौट जाता है। बड़े पैमाने पर डेटा माइग्रेशन के दौरान आप इसे अस्थायी रूप से कर सकते हैं या application-layer जाँचों के पक्ष में validation हटाते समय स्थायी रूप से भी कर सकते हैं।
// Remove the validator entirely
db.runCommand({
collMod: 'users',
validator: {}
});Mongoose बनाम Native MongoDB में Validation
Mongoose में ODM स्तर पर अपना Schema validation होता है, जो डेटा MongoDB को भेजने से पहले JavaScript में चलता है। हालांकि, insertMany या सीधे driver calls के माध्यम से Mongoose validation को बायपास किया जा सकता है। डेटाबेस स्तर पर JSON Schema Validator जोड़ने से एक अतिरिक्त सुरक्षा परत बनती है, जिसे कोई भी client बायपास नहीं कर सकता, चाहे इस्तेमाल किया गया driver या भाषा कोई भी हो।
Nested Object Validation
JSON Schema Validators एम्बेड किए गए sub-documents के भीतर तक पहुँच सकते हैं। nested फ़ील्ड के लिए नियम परिभाषित करने हेतु properties key का उपयोग करें और nested object को स्वयं bsonType: 'object' से चिह्नित करें। इससे आप पदानुक्रमित दस्तावेज़ के हर स्तर को validate कर सकते हैं।
db.createCollection('orders', {
validator: {
$jsonSchema: {
bsonType: 'object',
required: ['customerId', 'shippingAddress'],
properties: {
customerId: { bsonType: 'objectId' },
shippingAddress: {
bsonType: 'object',
required: ['street', 'city'],
properties: {
street: { bsonType: 'string' },
city: { bsonType: 'string' }
}
}
}
}
}
});Array Item Validation
किसी array फ़ील्ड में केवल किसी विशिष्ट आकार के दस्तावेज़ होने की पुष्टि करने के लिए property definition के भीतर items का उपयोग करें। Array का प्रत्येक तत्व items Schema के अनुसार validate किया जाएगा। यह एम्बेड किए गए लाइन आइटम, टैग या पता arrays का आकार लागू करने के लिए उपयोगी है।
db.createCollection('carts', {
validator: {
$jsonSchema: {
bsonType: 'object',
properties: {
items: {
bsonType: 'array',
items: {
bsonType: 'object',
required: ['productId', 'qty'],
properties: {
productId: { bsonType: 'objectId' },
qty: { bsonType: 'int', minimum: 1 }
}
}
}
}
}
}
});Atlas में Schema Validation
MongoDB Atlas raw JSON लिखे बिना कलेक्शन Validators बनाने और संपादित करने के लिए एक ग्राफ़िकल interface प्रदान करता है। कलेक्शन के Schema tab में आप properties जोड़ सकते हैं, types सेट कर सकते हैं और form के माध्यम से आवश्यक फ़ील्ड चिह्नित कर सकते हैं। Atlas एक validation score भी दिखाता है—मौजूदा दस्तावेज़ों का वह प्रतिशत जो वर्तमान Schema को पास करता है—जिससे strict validation लागू करने से पहले डेटा की गुणवत्ता मापने में सहायता मिलती है।
त्वरित जाँच
इस पाठ में MongoDB और NoSQL डेटाबेस की अवधारणाओं के बारे में अपनी समझ जाँचें।
पाठ का पुनरावलोकन
इस पाठ में आपने सीखा: JSON Schema Validators को createCollection या collMod के माध्यम से जोड़ा जाता है, validation विफल होने पर लेखन अस्वीकार कर दिया जाता है और विस्तृत error लौटाया जाता है, और nested objects तथा arrays को भी उसी Schema दस्तावेज़ में validate किया जा सकता है। अब हम type, required और enum constraints का गहराई से अध्ययन करेंगे।
एआई शिक्षक के साथ JavaScript सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 30
- पाठ
- 120
अक्सर पूछे जाने वाले प्रश्न
क्या “कलेक्शन में Validator जोड़ना” पाठ निःशुल्क है?
हाँ—“कलेक्शन में Validator जोड़ना” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और MongoDB Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। MongoDB Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“कलेक्शन में Validator जोड़ना” में मैं क्या सीखूँगा?
शिक्षार्थी आवश्यक फ़ील्ड और डेटा प्रकार लागू करने के लिए createCollection और collMod का उपयोग करके JSON Schema validator जोड़ेंगे। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ MongoDB Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या MongoDB Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर MongoDB Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“कलेक्शन में Validator जोड़ना” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस MongoDB Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर MongoDB Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- कलेक्शन में Validator जोड़ना
- प्रकार, आवश्यक और Enum बाधाएँ
- Validation स्तर और कार्रवाइयाँ
- बिना डाउनटाइम स्कीमा विकसित करना