पाठ 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 आती है और कुछ भी सेव नहीं होता — मोंगूज़ डेटाबेस तक पहुँचने से पहले वैलिडेट करता है — आवश्यक फ़ील्ड न होने पर सेव अस्वीकार हो जाता है।