MongoDB SQL डेटाबेस के विपरीत, लचीली दस्तावेज़ संरचनाओं के साथ एक स्कीमा-रहित NoSQL डेटाबेस है। डेटाबेस के रूप में MongoDB का उपयोग करना आसान स्केलिंग से लेकर आधुनिक डेटाबेस सुविधाओं जैसे लेनदेन तक कई लाभ लाता है।

MongoDB, Mongoose जैसे ऑब्जेक्ट डेटा मॉडलिंग (ODM) पुस्तकालयों का भी समर्थन करता है। ODM डेटा संबंधों का प्रबंधन करते हैं, स्कीमा को मान्य करते हैं, और ऑब्जेक्ट को डेटा मॉडल में परिवर्तित करते हैं। वे MongoDB डेटाबेस के साथ बातचीत करना आसान बनाते हैं।

कुछ चरणों में, आप सीखेंगे कि समर्पित NestJS mongoose पैकेज के साथ NestJS एप्लिकेशन में MongoDB का उपयोग कैसे करें।

चरण 1: निर्भरता स्थापित करना

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

नेवला और उसके मूल NestJS पैकेज का उपयोग करके स्थापित करें एनपीएम पैकेज मैनेजर चलाकर:

एनपीएम इंस्टॉल @nestjs/ नेवला नेवला

चरण 2: MongoDB से जुड़ना

जब इंस्टॉलेशन समाप्त हो जाए, तो अपने पर नेविगेट करें ऐप.मॉड्यूल.ts फ़ाइल। फिर आयात करें नेवला मॉड्यूल से @घोंसला/नेवला:

आयात { नेवला मॉड्यूल } से '@ Nestjs/mongoose';
instagram viewer

इसके बाद, अपने आयात सरणी में, कॉल करें जड़ के लिए विधि चालू नेवला मॉड्यूल और अपने मोंगोडीबी यूआरआई को तर्क के रूप में पास करें:

आयात: [MongooseModule.forRoot (process.env. MONGODB_URI)],

जड़ के लिए विधि आपके आवेदन में सभी मॉड्यूल के माध्यम से डेटाबेस कनेक्शन साझा करती है। यह एक वैकल्पिक विन्यास वस्तु लेता है; आप इसके बारे में अधिक जान सकते हैं नेवला विकल्प दस्तावेज।

चरण 3: एक नेवला स्कीमा बनाना

स्कीमा एक JSON ऑब्जेक्ट है जो आपके डेटा की संरचना और सामग्री को परिभाषित करता है। आपको यह परिभाषित करने के लिए एक बनाना होगा कि Mongoose आपके डेटा को MongoDB डेटाबेस में कैसे संग्रहीत करता है।

अपने एप्लिकेशन के रूट मॉड्यूल में, "स्कीमा"फ़ोल्डर। यह फ़ोल्डर वह जगह है जहाँ आप अपनी सभी स्कीमा फ़ाइलों को संग्रहीत करेंगे।

अपने अंदर स्कीमा फ़ोल्डर, एक स्कीमा फ़ाइल बनाएँ और इसे NestJS नामकरण परंपरा का उपयोग करके नाम दें (.स्कीमा.ts).

इसके बाद, अपनी स्कीमा फ़ाइल में निम्नलिखित आयात जोड़ें:

आयात { प्रोप, स्कीमा, स्कीमा फैक्ट्री } से "@ Nestjs/मोंगोज़";
आयात { दस्तावेज़ } से "मोंगोज़";

प्रोप डेकोरेटर उन गुणों को चिह्नित करता है जो आपके MongoDB डेटाबेस में एक संपत्ति के रूप में एनोटेट करता है।

योजना डेकोरेटर उस वर्ग को चिह्नित करता है जिसे वह एक स्कीमा के रूप में एनोटेट करता है।

स्कीमा फैक्टरी वर्ग में मॉडल निर्माण के लिए उपयोग की जाने वाली स्थिर विधियाँ हैं।

नेवला दस्तावेज़ MongoDB में संग्रहीत दस्तावेजों के लिए एक-से-एक मैपिंग का प्रतिनिधित्व करता है। आपको इसे एक प्रकार के एनोटेशन के रूप में चाहिए।

फिर, एक वर्ग बनाएं, इसे के साथ एनोटेट करें योजना डेकोरेटर इसे एक नेवला स्कीमा के रूप में चिह्नित करने के लिए, और इसे निर्यात करें:

@स्कीमा()
निर्यात करनाकक्षाडेमो{}

इसके बाद, अपनी कक्षा के साथ एक संघ प्रकार बनाएं और निर्यात करें और दस्तावेज़:

निर्यात करनाप्रकार डेमो दस्तावेज़ = डेमो और दस्तावेज़;

फिर अपने वांछित गुणों को कक्षा में जोड़ें और उन्हें एनोटेट करें प्रोप डेकोरेटर आप एक वैकल्पिक कॉन्फ़िगरेशन ऑब्जेक्ट को पास कर सकते हैं प्रोप डेकोरेटर और आवश्यकतानुसार संपत्ति सेट करें:

@स्कीमा()
निर्यात करनाकक्षाडेमो{
@प्रोप({ आवश्यक: सच })
संपत्ति_1: स्ट्रिंग;
}

नेवला प्रलेखन में कॉन्फ़िगरेशन ऑब्जेक्ट को अधिक विस्तार से शामिल किया गया है।

अंत में, के माध्यम से एक नेवला मॉडल बनाएं और निर्यात करें स्कीमा फैक्टरी'एस क्रिएटफॉरक्लास विधि और अपनी कक्षा को तर्क के रूप में पास करें:

निर्यात करनास्थिरांक DemoSchema = SchemaFactory.createForClass (डेमो);

आपकी पूर्ण स्कीमा इस तरह दिखनी चाहिए:

आयात { प्रोप, स्कीमा, स्कीमा फैक्ट्री } से '@ Nestjs/mongoose';
आयात { दस्तावेज़ } से 'मोंगोज़';

निर्यात करनाप्रकार डेमो दस्तावेज़ = डेमो और दस्तावेज़;

@स्कीमा()
निर्यात करनाकक्षाडेमो{
@प्रोप({ आवश्यक: सच })
संपत्ति_1: स्ट्रिंग;

@प्रोप({ आवश्यक: सच })
संपत्ति_2: संख्या;

@प्रोप()
संपत्ति_3: स्ट्रिंग;

@प्रोप({ आवश्यक: सच })
संपत्ति_4: बूलियन;
}

निर्यात करनास्थिरांक DemoSchema = SchemaFactory.createForClass (डेमो);

चरण 4: स्कीमा का पंजीकरण

अपने मॉड्यूल के फ़ोल्डर में नेविगेट करें और निम्नलिखित आयात जोड़ें:

आयात { नेवला मॉड्यूल } से '@ Nestjs/mongoose';
आयात { डेमो, डेमो स्कीमा } से '../schemas/demo.schema';

अगला, एक बनाएँ "आयात"अंदर सरणी @मापांक डेकोरेटर फिर, सरणी के अंदर, कॉल करें फ़ीचर के लिए विधि चालू नेवला मॉड्यूल.

फ़ीचर के लिए विधि नेवला मॉडल की एक सरणी में लेता है। कॉन्फ़िगरेशन ऑब्जेक्ट में पास करें a नाम संपत्ति आपके स्कीमा वर्ग के नाम पर सेट है, और a योजना आपके बनाए गए स्कीमा पर सेट की गई संपत्ति:

नेवला मॉड्यूल.फ़ीचर के लिए([{नाम: Demo.name, स्कीमा: DemoSchema}]),

चरण 5: नेवला मॉडल को इंजेक्ट करना

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

अपने मॉड्यूल के सेवा वर्ग पर नेविगेट करें, और निम्नलिखित आयात जोड़ें:

आयात { नमूना } से 'मोंगोज़';
आयात {इंजेक्टमॉडल} से '@ Nestjs/mongoose';
आयात { डेमो, डेमो डॉक्यूमेंट } से '../schemas/demo.schema';

उपयोग नमूना इंटरफ़ेस आपके मॉडल के लिए एक प्रकार की परिभाषा के रूप में, इसे नेवला विधियों तक पहुंच प्रदान करता है।

इंजेक्ट मॉडल डेकोरेटर नेवला मॉडल को आपके सर्विस क्लास के कंस्ट्रक्टर में इंजेक्ट करता है।

अगला, एक बनाएं निर्माता आपकी सेवा कक्षा के अंदर। यह एक लेना चाहिए निजी एक तर्क के रूप में चर, a नमूना एक सामान्य प्रकार के साथ डेमो दस्तावेज़. के साथ अपने निजी चर को एनोटेट करें इंजेक्ट मॉडल डेकोरेटर और अपने स्कीमा वर्ग के नाम को एक तर्क के रूप में पास करें:

@ इंजेक्शन योग्य()
निर्यात करनाकक्षाडेमो सेवा{
निर्माता(
@इंजेक्टमॉडल(डेमो.नाम)
निजी डेमोमॉडल: मॉडल<डेमो दस्तावेज़>,
) {}
}

आप अपने निजी चर पर Mongoose विधियों को कॉल करके अपने MongoDB डेटाबेस को क्वेरी कर सकते हैं (डेमोमॉडल).

MongoDB का उपयोग करने के लाभ

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