Mongoose का उपयोग करके MongoDB डेटाबेस के साथ अपने Node.js एप्लिकेशन को एकीकृत करें।

MongoDB डेटाबेस में डेटा का प्रबंधन चुनौतीपूर्ण हो सकता है, खासकर जब जटिल डेटा मॉडल के साथ काम कर रहे हों। MongoDB एक स्कीमा-रहित डेटाबेस है, जिसका अर्थ है कि किसी विशेष संरचना का पालन किए बिना डेटा जोड़ा जा सकता है। यह लचीलापन बड़ी मात्रा में डेटा संग्रहीत करने के लिए मोंगोडीबी को आदर्श बनाता है लेकिन डेटा को और अधिक कठिन बना देता है।

Mongoose एक स्कीमा-आधारित समाधान प्रदान करता है जो यह सुनिश्चित करने में मदद करता है कि MongoDB में सहेजा गया डेटा सुसंगत और सही ढंग से स्वरूपित है। मोंगोस के साथ, आप अपने डेटा मॉडल के लिए एक स्कीमा परिभाषित कर सकते हैं, जो डेटा की संरचना और नियमों को निर्दिष्ट करता है कि डेटा को कैसे स्वरूपित किया जाना चाहिए। यहां आप एक एक्सप्रेस एप्लिकेशन में नेवला का उपयोग करने का तरीका जानेंगे।

अपने विकास पर्यावरण की स्थापना

नेवला का उपयोग करने से पहले, आपको इसे अपने प्रोजेक्ट में एक निर्भरता के रूप में स्थापित करना होगा।

आप नीचे दी गई कमांड चलाकर नेवला स्थापित कर सकते हैं:

एनपीएम नेवला स्थापित करें
instagram viewer

अपने प्रोजेक्ट में Mongoose इंस्टॉल करने के बाद, आपको Mongoose का उपयोग करके अपने एप्लिकेशन को MongoDB से कनेक्ट करना होगा।

Mongoose एक MongoDB डेटाबेस का उपयोग करके जुड़ता है जोड़ना विधि, जो एक MongoDB URI को तर्क के रूप में लेती है।

यहाँ एक उदाहरण है:

// index.js
कॉन्स्ट नेवला = ज़रूरत होना("नेवला")

नेवला.कनेक्ट ("मोंगोडब: //127.0.0.1:27017/उदाहरण", () =>
सांत्वना देना।लकड़ी का लट्ठा("डेटाबेस से सफलतापूर्वक जुड़ा")
);

उपरोक्त कोड ब्लॉक एक स्थानीय मोंगोडीबी उदाहरण से जुड़ता है और जब आपका आवेदन सफलतापूर्वक मोंगोडीबी से जुड़ता है तो एक सफल संदेश लॉग करता है।

नेवला मॉडल बनाना

Mongoose मॉडल Mongoose में एक स्कीमा-आधारित वर्ग है जो आपको MongoDB संग्रह के साथ इंटरैक्ट करने की अनुमति देता है।

Mongoose स्कीमा उन दस्तावेज़ों की संरचना को परिभाषित करता है जिन्हें आप MongoDB संग्रह में संग्रहीत कर सकते हैं और उसमें दस्तावेज़ बनाने, पढ़ने, अद्यतन करने और हटाने के लिए एक इंटरफ़ेस प्रदान करता है संग्रह।

जब आप एक मोंगोस मॉडल को परिभाषित करते हैं, तो आप उस संग्रह में दस्तावेज़ों के लिए स्कीमा को परिभाषित करते हैं, जिसमें गुण, उनके प्रकार और किसी भी सत्यापन शामिल हैं।

यहाँ एक नेवला मॉडल का एक उदाहरण दिया गया है उपयोगकर्ता संग्रह:

कॉन्स्ट नेवला = ज़रूरत होना("नेवला");

कॉन्स्ट userSchema = नेवला। स्कीमा({
नाम: {
प्रकार: डोरी,
आवश्यक: [सत्य, "नाम आवश्यक है"],
},
ईमेल: {
प्रकार: डोरी,
आवश्यक: सत्य,
},
आयु: {
प्रकार: संख्या,
सत्यापित करें: {
सत्यापनकर्ता: समारोह (कीमत) {
वापस करना मूल्य > 0;
},
संदेश: () =>"कृपया एक मान्य आयु दर्ज करें",
},
},
});

कॉन्स्ट उपयोगकर्ता = नेवला.मॉडल ("उपयोगकर्ता", यूजरस्केमा);

मापांक.निर्यात = उपयोगकर्ता;

उपरोक्त कोड ब्लॉक तीन गुणों के साथ एक नेवला स्कीमा को परिभाषित करता है: नाम, ईमेल, और आयु. प्रत्येक गुण में नियमों का एक परिभाषित सेट होता है जिसका पालन आपको किसी मान को उसके निर्दिष्ट फ़ील्ड में मैप करते समय करना होता है। यहाँ नियमों का टूटना है:

  • नाम: द नाम संपत्ति एक है डोरी प्रकार के रूप में चिह्नित आवश्यक, जिसका अर्थ है कि आपको इस क्षेत्र में एक स्ट्रिंग मैप करनी होगी। यदि आप फ़ील्ड को खाली छोड़ देते हैं या कोई भिन्न दर्ज करते हैं जावास्क्रिप्ट डेटा प्रकार, नेवला एक त्रुटि फेंकता है।
  • ईमेल: द ईमेल संपत्ति एक है डोरी प्रकार के रूप में चिह्नित आवश्यक. इसका कोई अन्य सत्यापन नियम नहीं है, लेकिन व्यवहार में, आपको सत्यापित करना चाहिए कि ईमेल सही है या नहीं। आप ईमेल को मान्य कर सकते हैं रेगेक्स एक्सप्रेशन का उपयोग करना या तीसरे पक्ष के पुस्तकालय, जैसे कि वर्ग-सत्यापनकर्ता।
  • आयु: द आयु संपत्ति एक है संख्या कस्टम सत्यापन नियम के साथ टाइप करें जो जांचता है कि फ़ील्ड में मैप किया गया मान शून्य से अधिक है या नहीं। यदि मान सत्यापन पास नहीं करता है, तो नेवला संदेश के साथ एक त्रुटि फेंकता है कृपया एक मान्य आयु दर्ज करें. आप इस फ़ील्ड को खाली छोड़ सकते हैं क्योंकि इसे इस रूप में चिह्नित नहीं किया गया है आवश्यक.

स्कीमा को परिभाषित करने के बाद, कोड ब्लॉक एक नेवला मॉडल बनाता है जिसे कहा जाता है उपयोगकर्ता का उपयोग करते हुए नेवला.मॉडल () तरीका। यह विधि दो तर्क लेती है: मॉडल का नाम और दस्तावेज़ों के लिए उपयोग की जाने वाली स्कीमा।

अंततः उपयोगकर्ता मॉडल आपके आवेदन के अन्य भागों में निर्यात किया जाता है।

नेवला का उपयोग करते हुए MongoDB के साथ सहभागिता

आपका एप्लिकेशन एक MongoDB डेटाबेस से जुड़ा है और आपका मॉडल बनाया गया है और आपके एप्लिकेशन के अन्य भागों के लिए सुलभ है, आप Mongoose द्वारा प्रदान की गई विधियों का उपयोग करके अपने डेटाबेस के साथ इंटरैक्ट कर सकते हैं।

इस ट्यूटोरियल के लिए, आप प्रदर्शन करेंगे MongoDB डेटाबेस पर CRUD संचालन.

टिप्पणी: अपने Mongoose मॉडल को किसी भी मॉड्यूल में आयात करना सुनिश्चित करें जहां आप CRUD संचालन करेंगे।

उदाहरण के लिए:

// राउटर.जेएस

कॉन्स्ट उपयोगकर्ता = ज़रूरत होना("./userModel")

दस्तावेज़ बनाना

एक दस्तावेज़ एक मॉडल का एक उदाहरण है। Mongoose का उपयोग करके आप MongoDB में दस्तावेज़ बनाने और सहेजने के कई तरीके हैं।

सबसे पहले, आप अपने मॉडल की कक्षा का एक उदाहरण बना सकते हैं और फिर कॉल कर सकते हैं बचाना उस पर विधि।

उदाहरण के लिए:

// एक नया उपयोगकर्ता बनाना
होने देना उपयोगकर्ता = नया उपयोक्ता({
नाम,
ईमेल,
आयु,
});

// उपयोगकर्ता को डेटाबेस में सहेजा जा रहा है
उपयोगकर्ता
।बचाना()
।तब(() => {
सांत्वना देना।लकड़ी का लट्ठा("उपयोगकर्ता सफलतापूर्वक बनाया गया");
})
।पकड़ना((गलती) => {
// हैंडल एरर
});

उपरोक्त कोड ब्लॉक एक नया बनाता है और सहेजता है उपयोगकर्ता अपने MongoDB डेटाबेस के लिए दस्तावेज़।

आप का उपयोग करके अपने डेटाबेस में डेटा भी सहेज सकते हैं बनाएं तरीका। बनाएं विधि आपके मॉडल को तुरंत चालू करती है और कॉल करती है बचाना उस पर विधि। शब्दों के क्रम में, यह पहले बताई गई तकनीक के दो कार्यों को जोड़ती है।

उदाहरण के लिए:

User.create({नाम, ईमेल, आयु}, (त्रुटि, डेटा) => {
अगर (गलत) फेंकनानयागलती("आंतरिक सर्वर त्रुटि");

सांत्वना देना।लकड़ी का लट्ठा(`उपयोगकर्ता सफलतापूर्वक बनाया: ${डेटा}`);
});

उपरोक्त कोड ब्लॉक एक नया बनाता है उपयोगकर्ता एक तर्क के रूप में पास किए गए गुणों के साथ दस्तावेज़ बनाएं तरीका।

वैकल्पिक रूप से, आप का उपयोग करके डेटा को अपने डेटाबेस में सहेज सकते हैं सम्मिलित करें तरीका। हालांकि यह विधि बैचों में डेटा को बचाने के लिए ही आदर्श है।

उदाहरण के लिए:

User.insertMany(
[
{नाम, ईमेल, आयु},
{नाम_1, ईमेल_1, उम्र_1},
],
(त्रुटि, परिणाम) => {
अगर (गलती) {
// हैंडल एरर
} अन्य {
// परिणाम भेजें
}
}
);

उपरोक्त कोड ब्लॉक में दो नए दस्तावेज़ बनाता है उपयोगकर्ता एक तर्क के रूप में पारित सरणी का उपयोग करके संग्रह सम्मिलित करें तरीका।

एक दस्तावेज़ पढ़ना

आप अपने MongoDB डेटाबेस में सभी सहेजे गए दस्तावेज़ों को Mongoose का उपयोग करके एक्सेस कर सकते हैं पाना तरीका।

उदाहरण के लिए:

User.find({})
।तब((आंकड़े) => {
सांत्वना देनालॉग (डेटा);
})
।पकड़ना((ग़लती होना) => {
// हैंडल एरर
});

उपरोक्त कोड ब्लॉक सभी दस्तावेज़ों को वापस कर देगा उपयोगकर्ता संग्रह।

आप खोज विधि में क्वेरी पास करके किसी विशेष क्वेरी से मेल खाने वाले सभी दस्तावेज़ भी प्राप्त कर सकते हैं।

उदाहरण के लिए:

// वे सभी दस्तावेज़ खोजें जिनकी आयु कम से कम 18 वर्ष है
User.find({ आयु: { $gte: 18 } })
।तब((आंकड़े) =>सांत्वना देनालॉग (डेटा))
।पकड़ना((गलती) =>सांत्वना देनालॉग (त्रुटि));

ऊपर दिया गया कोड ब्लॉक 18 वर्ष से अधिक आयु वाले सभी दस्तावेज़ वापस कर देगा उपयोगकर्ता संग्रह।

वैकल्पिक रूप से, आप का उपयोग करके एकल रिकॉर्ड पढ़ सकते हैं FindById विधि और एक दस्तावेज़ आईडी को तर्क के रूप में पास करना या ढूँढो एक विधि और तर्क के रूप में फ़िल्टर पास करना।

उदाहरण के लिए:

//findById
User.findById (आईडी, (त्रुटि, परिणाम) => {
अगर (परिणाम) सांत्वना देनालॉग (परिणाम);
अगर (गलती) सांत्वना देनात्रुटि (त्रुटि)
});

//findOne
User.findOne({ ईमेल: "जॉनसन@example.com" })।तब((उपयोगकर्ता) => {
अगर (! उपयोगकर्ता) {
// हैंडल एरर
}
//प्रतिक्रिया भेजो
});

उपरोक्त कोड ब्लॉक में, FindById विधि दस्तावेज़ को मिलान आईडी के साथ लौटाती है। ढूँढो एक विधि ईमेल वाले पहले दस्तावेज़ को लौटाती है जॉनसन@example.com.

एक दस्तावेज़ को अद्यतन करना

आप MongoDB पर Mongoose का उपयोग करके एक दस्तावेज़ को अपडेट कर सकते हैं FindByIdAndUpdate तरीका। यह विधि अद्यतन विवरण के साथ एक आईडी और एक वस्तु लेती है।

उदाहरण के लिए:

User.findByIdAndUpdate (id, req.body, (err, doc) => {
अगर (दस्तावेज़) {
//प्रतिक्रिया भेजो
}
अगर (गलती) {
// हैंडल एरर
}
});

उपरोक्त कोड ब्लॉक उस दस्तावेज़ को अपडेट करता है जिसमें प्रदान की गई अद्यतन वस्तु के साथ प्रदान की गई आईडी से मेल खाने वाली आईडी होती है (req.body).

एक दस्तावेज़ को हटाना

आप MongoDB पर Mongoose का उपयोग करके एक दस्तावेज़ को हटा सकते हैं FindByIdAndDelete तरीका। यह विधि एक आईडी को तर्क के रूप में लेती है और संबंधित आईडी वाले दस्तावेज़ को हटा देती है।

उदाहरण के लिए:

User.findByIdAndDelete (आईडी, (त्रुटि, परिणाम) => {
अगर (परिणाम) {
// परिणाम संभालें
}
अगर (गलती) {
// हैंडल एरर
}
});

ऊपर दिया गया कोड ब्लॉक आपके MongoDB डेटाबेस से दिए गए आईडी वाले दस्तावेज़ को हटा देता है।

आपके एक्सप्रेस अनुप्रयोगों में नेवला का उपयोग करना

इस लेख ने एक सिंहावलोकन प्रदान किया है कि आप अपने एक्सप्रेस एप्लिकेशन में नेवला का उपयोग कैसे कर सकते हैं। यह कवर करते हुए कि आप MongoDB से कनेक्शन कैसे स्थापित कर सकते हैं, अपने MongoDB डेटाबेस में सहेजे गए डेटा की संरचना और सत्यापन कर सकते हैं, और सरल CRUD ऑपरेशन कर सकते हैं।

अपने एक्सप्रेस एप्लिकेशन में Mongoose का उपयोग करके, आप अपने एप्लिकेशन और MongoDB डेटाबेस के बीच की बातचीत को सरल और सुव्यवस्थित कर सकते हैं।