पाठ 18 / 22
मोंगूज़ वैलिडेशन
आवश्यक फ़ील्ड, सीमाएँ, और स्वीकृत मान लागू करें।
बिल्ट-इन वैलिडेटर
required, min/max, और enum आम बिल्ट-इन वैलिडेटर हैं जिन्हें हर फ़ील्ड पर जोड़ा जा सकता है।
const productSchema = new Schema({
name: { type: String, required: true },
price: { type: Number, min: 0 },
status: { type: String, enum: ["active", "discontinued"] }
});एक वैलिडेशन त्रुटि
आवश्यक फ़ील्ड न होने पर डेटाबेस तक पहुँचने से पहले ValidationError आती है।
const Product = model("Product", productSchema);
try {
await Product.create({ price: 50 }); // missing name
} catch (err) {
console.log(err.name); // "ValidationError"
}त्वरित जाँच: मोंगूज़ डॉक्यूमेंट सेव करते समय आवश्यक फ़ील्ड न हो तो क्या होता है?
- मोंगोडीबी चुपचाप एक डिफ़ॉल्ट भर देता है
- ValidationError आती है और कुछ भी सेव नहीं होता
- फ़ील्ड null के रूप में सेव हो जाती है
Answer
ValidationError आती है और कुछ भी सेव नहीं होता — मोंगूज़ डेटाबेस तक पहुँचने से पहले वैलिडेट करता है — आवश्यक फ़ील्ड न होने पर सेव अस्वीकार हो जाता है।