Node.js MongoDB उदाहरण सहित ट्यूटोरियल

⚡ स्मार्ट सारांश

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

  • डेटाबेस का चयन: Node.js रिलेशनल इंजन जैसे कि से जुड़ता है। MySQL और NoSQL इंजन जैसे MongoDB समर्पित एनपीएम मॉड्यूल के माध्यम से।
  • 📦 ड्राइवर सेटअप: Node.js प्रोजेक्ट में नेटिव MongoClient ड्राइवर जोड़ने के लिए npm install mongodb कमांड चलाएँ।
  • 🔌 कनेक्ट: MongoClient.connect और एक कॉलबैक का उपयोग करके या आधुनिक async/await client.connect() पैटर्न का उपयोग करके डेटाबेस लिंक खोलें।
  • 🔍 डेटा पढ़ना: किसी ऑब्जेक्ट के अंदर मौजूद सभी डॉक्यूमेंट्स में लूप करने के लिए find() फ़ंक्शन और कर्सर का उपयोग करें। MongoDB संग्रह.
  • ✍️ डेटा लेखन: insertOne, updateOne और deleteOne का उपयोग करके दस्तावेजों को सुरक्षित रूप से जोड़ें, संपादित करें और हटाएं।
  • 🧩 ड्राइवर बनाम ओडीएम: सामान्य क्वेरी के लिए हल्के MongoDB ड्राइवर का चयन करें या जब स्कीमा सत्यापन महत्वपूर्ण हो तो Mongoose का चयन करें।
  • 🌐 एक्सप्रेस एकीकरण: एक्सप्रेस मार्गों को इनके साथ जोड़ें MongoDB क्वेरी के माध्यम से ब्राउज़र अनुरोध लाइव डेटाबेस रिकॉर्ड लौटाता है।

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

नोड जेएस फ्रेमवर्क रिलेशनल (जैसे) दोनों डेटाबेस के साथ काम कर सकता है Oracle और एमएस एसक्यूएल सर्वर) और गैर-संबंधपरक डेटाबेस (जैसे MongoDB) इस ट्यूटोरियल में, हम देखेंगे कि हम Node js अनुप्रयोगों के भीतर डेटाबेस का उपयोग कैसे कर सकते हैं।

Node.js और NoSQL डेटाबेस

पिछले कुछ वर्षों में, NoSQL डेटाबेस जैसे MongoDB और रिलेशनल डेटाबेस जैसे MySQL डेटा संग्रहण के लिए डेटाबेस के रूप में डेटाबेस काफी लोकप्रिय हो गए हैं। किसी भी प्रकार के डेटा को, और विशेष रूप से किसी भी प्रारूप में, संग्रहित करने की इन डेटाबेस की क्षमता ही इन्हें इतना व्यापक रूप से उपयोग में लाती है।

Node.js में दोनों के साथ काम करने की क्षमता है MySQL और MongoDB डेटाबेस के रूप में। इनमें से किसी भी डेटाबेस का उपयोग करने के लिए, आपको नोड पैकेज मैनेजर का उपयोग करके आवश्यक मॉड्यूल डाउनलोड और उपयोग करना होगा।

के लिए MySQLआवश्यक मॉड्यूल को "mysql" कहा जाता है। MongoDBडेवलपर्स आधिकारिक नेटिव को इंस्टॉल कर सकते हैं। MongoDB ड्राइवर, जो इस लेख में दिए गए सभी कोड नमूनों में उपयोग किया जाने वाला पैकेज है, या स्कीमा-आधारित लाइब्रेरी जैसे कि नेवला जब एप्लिकेशन को अधिक संरचना की आवश्यकता होती है।

इन मॉड्यूल के साथ, आप Node.js में निम्नलिखित ऑपरेशन कर सकते हैं

  1. कनेक्शन पूलिंग प्रबंधित करें - यहां आप कनेक्शन पूलिंग की संख्या निर्दिष्ट कर सकते हैं। MySQL डेटाबेस कनेक्शन जिन्हें Node.js द्वारा बनाए रखा और सहेजा जाना चाहिए.
  2. डेटाबेस से कनेक्शन बनाएँ और बंद करें। किसी भी स्थिति में, आप एक कॉलबैक फ़ंक्शन प्रदान कर सकते हैं जिसे तब भी कॉल किया जा सकता है जब भी “create” और “close” कनेक्शन विधियों को निष्पादित किया जाता है।
  3. डेटा पुनः प्राप्त करने के लिए संबंधित डेटाबेस से डेटा प्राप्त करने हेतु क्वेरीज़ निष्पादित की जा सकती हैं।
  4. इन मॉड्यूलों की सहायता से डेटा हेरफेर, जैसे डेटा सम्मिलित करना, हटाना और अद्यतन करना भी संभव है।

शेष विषयों के लिए, हम देखेंगे कि हम किस प्रकार काम कर सकते हैं MongoDB डेटाबेस के भीतर Node.jsआइए, सबसे पहले बातचीत करने के दो सबसे आम तरीकों की संक्षिप्त तुलना करें। MongoDB एक Node.js प्रोजेक्ट से।

MongoDB Node.js में नेटिव ड्राइवर बनाम मोंगोस

ऊपर उल्लिखित मॉड्यूल नाम भ्रामक हो सकते हैं, क्योंकि Node.js मॉड्यूल से संवाद करने के दो अलग-अलग तरीके प्रदान करता है। MongoDB: देसी MongoDB चालक और नेवला ODM (ऑब्जेक्ट डेटा मॉडलिंग लाइब्रेरी)। इस लेख में आगे दिए गए प्रत्येक कोड उदाहरण में नेटिव ड्राइवर का उपयोग किया गया है, जो इसके साथ इंस्टॉल किया गया है। एनपीएम mongodb स्थापित करें और इसके माध्यम से पहुँचा जा सकता है मोंगोक्लाइंटMongoose उसी ड्राइवर को रैप करता है और स्कीमा परिभाषाएँ, सत्यापन और पुन: प्रयोज्य मॉडल विधियाँ जोड़ता है, जो उन बड़े अनुप्रयोगों के लिए उपयुक्त है जिन्हें कई संग्रहों में एक अनुमानित डेटा संरचना की आवश्यकता होती है। पहले से ही अंतर को समझने से पैकेज इंस्टॉल करते समय या अन्य Node.js कोड पढ़ते समय भ्रम से बचा जा सकता है। MongoDB उदाहरण ऑनलाइन उपलब्ध हैं। नीचे दी गई तालिका दोनों विकल्पों की तुलना करती है ताकि डेवलपर किसी विशेष प्रोजेक्ट के लिए सही टूल का चयन कर सके।

पहलू नेटिव मोंगोडीबी ड्राइवर नेवला
स्थापना एनपीएम mongodb स्थापित करें npm install mongoose
स्कीमा प्रवर्तन कोई नहीं, दस्तावेज़ लचीले बने रहते हैं स्कीमा ऑब्जेक्ट के माध्यम से परिभाषित
सीखने की अवस्था नीचे, कच्चे के करीब MongoDB प्रश्नों हायर, अपनी खुद की एपीआई लेयर जोड़ता है
के लिए सबसे अच्छा छोटे स्क्रिप्ट और प्रदर्शन-संवेदनशील कोड सुसंगत डेटा मॉडल वाले बड़े ऐप्स

सुझाव: कोर सीखते समय नेटिव ड्राइवर का ही उपयोग करें। MongoDB कमांड, फिर आगे बढ़ें नेवला जब एप्लिकेशन को कई संग्रहों में स्कीमा सत्यापन की आवश्यकता होती है।

का प्रयोग MongoDB और नोड.जेएस

शब्दावली स्पष्ट हो जाने के बाद, इस लेख के शेष भाग में केवल नेटिव ड्राइवर का ही उपयोग किया गया है, ठीक उसी रूप में जैसा कि नीचे दिए गए कोड नमूनों में दिखाई देता है। जैसा कि पिछले विषय में चर्चा की गई थी, MongoDB Node.js के साथ उपयोग किए जाने वाले सबसे लोकप्रिय डेटाबेस में से एक है।

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

इस अध्याय के उद्देश्य के लिए, मान लें कि हमारे पास निम्नलिखित है MongoDB डेटा को यथास्थान रखें।

डेटाबेस का नाम: EmployeeDB

संग्रह का नाम: कर्मचारी

Documents
{
	{Employeeid : 1, Employee Name : Guru99},
	{Employeeid : 2, Employee Name : Joe},
	{Employeeid : 3, Employee Name : Martin},
}
  1. एनपीएम मॉड्यूल स्थापित करना

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

एनपीएम mongodb स्थापित करें

  1. किसी कनेक्शन को बनाना और बंद करना MongoDB डेटाबेस। नीचे दिया गया कोड स्निपेट दिखाता है कि किसी कनेक्शन को कैसे बनाया और बंद किया जाए MongoDB डेटाबेस।

Code स्पष्टीकरण:

  1. पहला कदम इसमें शामिल करना है MongoDB ड्राइवर मॉड्यूल, जिसे रिक्वायर फ़ंक्शन के माध्यम से स्थापित किया जाता है। एक बार यह मॉड्यूल स्थापित हो जाने पर, हम डेटाबेस से कनेक्शन बनाने के लिए इस मॉड्यूल में उपलब्ध आवश्यक फ़ंक्शन का उपयोग कर सकते हैं।
  2. इसके बाद, हम डेटाबेस के लिए अपना कनेक्शन स्ट्रिंग निर्दिष्ट करते हैं। कनेक्ट स्ट्रिंग में, 3 कुंजी मान हैं जिन्हें पास किया जाता है।
  • पहला है 'mongoDB' जो निर्दिष्ट करता है कि हम mongoDB डेटाबेस से जुड़ रहे हैं।
  • अगला है 'लोकलहोस्ट' जिसका अर्थ है कि हम स्थानीय मशीन पर डेटाबेस से जुड़ रहे हैं।
  • अगला है 'EmployeeDB' जो हमारे द्वारा परिभाषित डेटाबेस का नाम है MongoDB डेटाबेस।
  1. अगला चरण हमारे डेटाबेस से कनेक्ट करना है। कनेक्ट फ़ंक्शन हमारे इनपुट को लेता है। URL और इसमें कॉलबैक फ़ंक्शन निर्दिष्ट करने की सुविधा है। डेटाबेस से कनेक्शन खुलने पर इसे कॉल किया जाएगा। इससे हमें यह जानने का अवसर मिलता है कि डेटाबेस कनेक्शन सफल रहा या नहीं।
  2. फ़ंक्शन में, हम कंसोल में “कनेक्शन स्थापित” स्ट्रिंग लिख रहे हैं, यह इंगित करने के लिए कि एक सफल कनेक्शन बनाया गया था।
  3. अंत में, हम db.close कथन का उपयोग करके कनेक्शन बंद कर रहे हैं।

यदि उपरोक्त कोड ठीक से निष्पादित किया जाता है, तो स्ट्रिंग “Connected” कंसोल में लिखी जाएगी जैसा कि नीचे दिखाया गया है।

  1. डेटा के लिए क्वेरी करना MongoDB डेटाबेस - का उपयोग करते हुए MongoDB ड्राइवर से हम डेटा भी प्राप्त कर सकते हैं MongoDB नीचे दिए गए अनुभाग में दिखाया जाएगा कि हम ड्राइवर का उपयोग करके अपने EmployeeDB डेटाबेस में मौजूद Employee संग्रह से सभी दस्तावेज़ कैसे प्राप्त कर सकते हैं। यह हमारे डेटाबेस का संग्रह है। MongoDB डेटाबेस, जिसमें सभी कर्मचारी-संबंधित दस्तावेज़ शामिल हैं। प्रत्येक दस्तावेज़ में दस्तावेज़ के मानों को परिभाषित करने के लिए एक ऑब्जेक्ट आईडी, कर्मचारी का नाम और कर्मचारी आईडी होती है।

var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';

MongoClient.connect(url, function(err, db) {

var cursor = db.collection('Employee').find();

cursor.each(function(err, doc) {

console.log(doc);

});
});

Code स्पष्टीकरण:

  1. पहले चरण में, हम एक कर्सर बना रहे हैं (कर्सर एक पॉइंटर होता है जिसका उपयोग डेटाबेस से प्राप्त विभिन्न रिकॉर्ड्स को इंगित करने के लिए किया जाता है। कर्सर का उपयोग डेटाबेस में विभिन्न रिकॉर्ड्स के माध्यम से पुनरावृति करने के लिए किया जाता है। यहां हम 'cursor' नामक एक वेरिएबल परिभाषित कर रहे हैं जिसका उपयोग डेटाबेस से प्राप्त रिकॉर्ड्स के पॉइंटर को संग्रहीत करने के लिए किया जाएगा) जो MongoDB संग्रह से प्राप्त रिकॉर्ड्स को इंगित करता है। हमारे पास 'Employee' संग्रह को निर्दिष्ट करने की सुविधा भी है जिससे रिकॉर्ड्स प्राप्त किए जाएंगे। find() फ़ंक्शन का उपयोग यह निर्दिष्ट करने के लिए किया जाता है कि हम MongoDB संग्रह से सभी दस्तावेज़ों को पुनः प्राप्त करना चाहते हैं। MongoDB संग्रह.
  2. अब हम अपने कर्सर के माध्यम से पुनरावृत्ति कर रहे हैं और कर्सर में प्रत्येक दस्तावेज़ के लिए हम एक फ़ंक्शन निष्पादित करने जा रहे हैं।
  3. हमारा फ़ंक्शन बस प्रत्येक दस्तावेज़ की सामग्री को कंसोल पर प्रिंट करने वाला है।

ध्यान दें: - डेटाबेस से किसी विशिष्ट रिकॉर्ड को प्राप्त करना भी संभव है। यह find() फ़ंक्शन में खोज शर्त निर्दिष्ट करके किया जा सकता है। उदाहरण के लिए, मान लीजिए कि आप केवल उस रिकॉर्ड को प्राप्त करना चाहते हैं जिसमें कर्मचारी का नाम इस प्रकार है: Guruयदि 99 है, तो इस कथन को निम्नानुसार लिखा जा सकता है।

var cursor=db.collection('Employee').find({EmployeeName: "guru99"})

यदि उपरोक्त कोड सफलतापूर्वक निष्पादित हो जाता है, तो आपके कंसोल में निम्नलिखित आउटपुट प्रदर्शित होगा।

आउटपुट:

आउटपुट से,

  • आप स्पष्ट रूप से देख पाएंगे कि संग्रह से सभी दस्तावेज़ पुनर्प्राप्त किए गए हैं। यह mongoDB कनेक्शन (db) की find() विधि का उपयोग करके और कर्सर का उपयोग करके सभी दस्तावेज़ों के माध्यम से पुनरावृति करके संभव है।
  1. संग्रह में दस्तावेज़ सम्मिलित करना - दस्तावेज़ों को द्वारा प्रदान की गई insertOne विधि का उपयोग करके संग्रह में डाला जा सकता है MongoDB नीचे दिया गया कोड स्निपेट दिखाता है कि हम एक दस्तावेज़ को mongoDB संग्रह में कैसे सम्मिलित कर सकते हैं।

var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';

MongoClient.connect(url, function(err, db) {

db.collection('Employee').insertOne({
Employeeid: 4,
EmployeeName: "NewEmployee"
});
});

Code स्पष्टीकरण:

  1. यहाँ हम insertOne विधि का उपयोग कर रहे हैं MongoDB कर्मचारी संग्रह में एक दस्तावेज़ सम्मिलित करने के लिए लाइब्रेरी का उपयोग करें।
  2. हम दस्तावेज़ विवरण निर्दिष्ट कर रहे हैं कि कर्मचारी संग्रह में क्या डाला जाना चाहिए।

यदि आप अब अपनी वेबसाइट की सामग्री की जांच करते हैं, MongoDB डेटाबेस में, आपको Employee ID 4 और EmployeeName “NewEmployee” वाला रिकॉर्ड मिलेगा जो Employee संग्रह में डाला गया है।

नोट: कंसोल कोई आउटपुट नहीं दिखाएगा क्योंकि रिकॉर्ड को डेटाबेस में डाला जा रहा है और यहां कोई आउटपुट नहीं दिखाया जा सकता है।

यह जांचने के लिए कि डाटाबेस में डाटा सही तरीके से डाला गया है, आपको निम्नलिखित कमांड निष्पादित करने की आवश्यकता है MongoDB

  1. कर्मचारीDB का उपयोग करें
  2. db.Employee.find({Employeeid :4 })

पहला कथन यह सुनिश्चित करता है कि आप EmployeeDb डेटाबेस से जुड़े हुए हैं। दूसरा कथन उस रिकॉर्ड की खोज करता है जिसमें कर्मचारी आईडी 4 है।

  1. संग्रह में दस्तावेज़ों को अद्यतन करना - द्वारा प्रदान की गई updateOne विधि का उपयोग करके संग्रह में दस्तावेज़ों को अपडेट किया जा सकता है MongoDB नीचे दिया गया कोड स्निपेट दिखाता है कि mongoDB संग्रह में किसी दस्तावेज़ को कैसे अपडेट किया जाए।

var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';

MongoClient.connect(url, function(err, db) {

db.collection('Employee').updateOne({
"EmployeeName": "NewEmployee"
}, {
$set: {
"EmployeeName": "Mohan"
}
});
});

Code स्पष्टीकरण:

  1. यहाँ हम “updateOne” विधि का उपयोग कर रहे हैं MongoDB लाइब्रेरी, जिसका उपयोग mongoDB संग्रह में किसी दस्तावेज़ को अद्यतन करने के लिए किया जाता है।
  2. हम खोज मानदंड निर्दिष्ट कर रहे हैं कि किस दस्तावेज़ को अपडेट करने की आवश्यकता है। हमारे मामले में, हम वह दस्तावेज़ खोजना चाहते हैं जिसमें “NewEmployee” का EmployeeName है।
  3. फिर हम दस्तावेज़ के EmployeeName का मान “NewEmployee” से “Mohan” पर सेट करना चाहते हैं।

यदि आप अब अपनी वेबसाइट की सामग्री की जांच करते हैं, MongoDB डेटाबेस में, आपको कर्मचारी संग्रह में अपडेट किया गया रिकॉर्ड मिलेगा जिसमें 4 की कर्मचारी आईडी और “मोहन” का कर्मचारी नाम होगा।

यह जांचने के लिए कि डेटाबेस में डेटा ठीक से अपडेट हो गया है, आपको निम्नलिखित कमांड निष्पादित करने की आवश्यकता है MongoDB

  1. कर्मचारीDB का उपयोग करें
  2. db.Employee.find({Employeeid :4 })

पहला कथन यह सुनिश्चित करता है कि आप EmployeeDb डेटाबेस से जुड़े हुए हैं। दूसरा कथन उस रिकॉर्ड की खोज करता है जिसमें कर्मचारी आईडी 4 है।

  1. संग्रह में दस्तावेज़ हटाना – संग्रह में मौजूद दस्तावेज़ों को “deleteOne” विधि का उपयोग करके हटाया जा सकता है MongoDB नीचे दिया गया कोड स्निपेट दिखाता है कि mongoDB संग्रह में किसी दस्तावेज़ को कैसे हटाया जाए।

var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';

MongoClient.connect(url, function(err, db) {

db.collection('Employee').deleteOne(

{
"EmployeeName": "Mohan"
}

);
});

Code स्पष्टीकरण:

  1. यहाँ हम “deleteOne” विधि का उपयोग कर रहे हैं MongoDB लाइब्रेरी, जिसका उपयोग mongoDB संग्रह में किसी दस्तावेज़ को हटाने के लिए किया जाता है।
  2. हम खोज मानदंड निर्दिष्ट कर रहे हैं कि किस दस्तावेज़ को हटाना है। हमारे मामले में, हम उस दस्तावेज़ को खोजना चाहते हैं जिसमें कर्मचारी का नाम “मोहन” है और इस दस्तावेज़ को हटाना चाहते हैं।

यदि आप अब अपनी वेबसाइट की सामग्री की जांच करते हैं, MongoDB डेटाबेस में, आपको कर्मचारी आईडी 4 और कर्मचारी संग्रह से "मोहन" का कर्मचारी नाम हटा दिया गया रिकॉर्ड मिलेगा।

यह जांचने के लिए कि डेटाबेस में डेटा ठीक से अपडेट हो गया है, आपको निम्नलिखित कमांड निष्पादित करने की आवश्यकता है MongoDB

  1. कर्मचारीDB का उपयोग करें
  2. db.कर्मचारी.find()

पहला कथन यह सुनिश्चित करता है कि आप EmployeeDb डेटाबेस से जुड़े हुए हैं। दूसरा कथन कर्मचारी संग्रह में सभी रिकॉर्ड खोजता है और प्रदर्शित करता है। यहाँ आप देख सकते हैं कि रिकॉर्ड हटा दिया गया है या नहीं।

आधुनिक एसिंक्रोनस/अवेट MongoDB Node.js में कनेक्शन

RSI MongoClient.connect(url, callback) इस लेख में प्रयुक्त पैटर्न निम्नलिखित पैटर्न से मेल खाता है: MongoDB उपरोक्त उदाहरण लिखते समय Node.js ड्राइवर का जो संस्करण प्रचलित था, उसी का उपयोग किया गया है। हाल के ड्राइवर रिलीज़ अभी भी उस कॉलबैक शैली का समर्थन करते हैं, लेकिन अधिकांश नए प्रोजेक्ट अब प्रॉमिस और async/await को प्राथमिकता देते हैं, क्योंकि इससे प्राप्त कोड बिना नेस्टेड कॉलबैक के सीधे पढ़ा जा सकता है। नीचे दिए गए चरणों में आधुनिक सिंटैक्स का उपयोग करके उसी एम्प्लॉई कनेक्शन को पुनः लिखा गया है।

  1. किसी भी फ़ंक्शन के बाहर एक सिंगल MongoClient इंस्टेंस बनाएं, और कनेक्शन स्ट्रिंग को केवल एक बार पास करें, उदाहरण के लिए। const क्लाइंट = नया MongoClient(url);
  2. कॉल क्लाइंट.कनेक्ट() की प्रतीक्षा करें किसी कॉलबैक को पास करने के बजाय, एसिंक्रोनस फ़ंक्शन के अंदर कनेक्शन खोलने के लिए इसका उपयोग करें।
  3. डेटाबेस प्राप्त करें क्लाइंट.डीबी('EmployeeDB') कॉलबैक के अंदर लौटाए गए ऑब्जेक्ट पर निर्भर रहने के बजाय।
  4. क्वेरी चलाएँ का इंतजार, उदाहरण के लिए await db.collection('Employee').find().toArray()जो कर्सर कॉलबैक की आवश्यकता के बजाय सीधे एक ऐरे लौटाता है।
  5. कनेक्शन बंद करें await client.close() इसे फाइनली ब्लॉक के अंदर रखा गया है ताकि यह हमेशा चलता रहे, भले ही कोई क्वेरी त्रुटि उत्पन्न करे।
const { MongoClient } = require('mongodb');

const url = 'mongodb://localhost:27017';
const client = new MongoClient(url);

async function run() {
try {
await client.connect();
const db = client.db('EmployeeDB');
const employees = await db.collection('Employee').find().toArray();
console.log(employees);
} finally {
await client.close();
}
}

run().catch(console.error);

दोनों शैलियाँ एक ही EmployeeDB डेटाबेस और एक ही Employee संग्रह से जुड़ती हैं, इसलिए मौजूदा कॉलबैक-आधारित कोड को तुरंत फिर से लिखने की आवश्यकता नहीं है। परियोजना के क्रमिक माइग्रेशन के दौरान दोनों दृष्टिकोण साथ-साथ चल सकते हैं, और चुनाव मुख्यतः इस बात पर निर्भर करता है कि कौन सा दृष्टिकोण बेहतर है। MongoDB Node.js ड्राइवर संस्करण पहले से ही package.json फ़ाइल में पिन किया हुआ है।

नोड एक्सप्रेस ऐप कैसे बनाएं MongoDB सामग्री को संग्रहीत और प्रस्तुत करना

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

जब साथ काम कर रहा हो Javaलिपि वेब आधारित अनुप्रयोगों में, आमतौर पर MEAN स्टैक शब्द सुनने को मिलता है।

  • MEAN स्टैक शब्द का तात्पर्य निम्नलिखित के संग्रह से है Javaवेब अनुप्रयोगों को विकसित करने के लिए प्रयुक्त स्क्रिप्ट आधारित प्रौद्योगिकियां।
  • MEAN एक संक्षिप्त नाम है MongoDB, एक्सप्रेसजेएस, AngularJS, और नोड.जेएस.

इसलिए, यह समझना हमेशा अच्छा होता है कि Node.js और MongoDB बैकएंड डाटाबेस के साथ इंटरैक्ट करने वाले अनुप्रयोगों को वितरित करने के लिए एक साथ काम करें।

आइए एक सरल उदाहरण देखें कि हम “एक्सप्रेस” और “MongoDB” को एक साथ जोड़ें। हमारा उदाहरण उसी कर्मचारी संग्रह का उपयोग करेगा MongoDB कर्मचारीडीबी डेटाबेस.

अब हम Express का उपयोग करके उपयोगकर्ता द्वारा अनुरोध किए जाने पर वेब पेज पर डेटा प्रदर्शित करेंगे। जब हमारा एप्लिकेशन Node.js पर चलता है, तो उपयोगकर्ता को ब्राउज़ करने की आवश्यकता हो सकती है। URL http://localhost:3000/Employeeid.

जब पेज लॉन्च किया जाएगा, तो कर्मचारी संग्रह में सभी कर्मचारी आईडी प्रदर्शित की जाएंगी। तो आइए अनुभागों में कोड स्निपेट देखें जो हमें इसे प्राप्त करने की अनुमति देगा।

चरण 1) उन सभी लाइब्रेरीज़ को परिभाषित करें जिन्हें हमारे एप्लिकेशन में उपयोग करने की आवश्यकता है, जो हमारे मामले में दोनों हैं MongoDB और एक्सप्रेस लाइब्रेरी.

Code स्पष्टीकरण:

  1. हम अपनी 'एक्सप्रेस' लाइब्रेरी को परिभाषित कर रहे हैं, जिसका उपयोग हमारे एप्लिकेशन में किया जाएगा।
  2. हम अपनी 'MongoDB' लाइब्रेरी, जिसका उपयोग हमारे एप्लिकेशन में हमारे से कनेक्ट करने के लिए किया जाएगा MongoDB डेटाबेस।
  3. यहां हम परिभाषित कर रहे हैं URL हमारे डेटाबेस से जुड़ने के लिए।
  4. अंत में, हम एक स्ट्रिंग परिभाषित कर रहे हैं जिसका उपयोग हमारे कर्मचारी आईडी के संग्रह को संग्रहीत करने के लिए किया जाएगा जिसे बाद में ब्राउज़र में प्रदर्शित किया जाना होगा।

चरण 2) इस चरण में, अब हम अपने 'कर्मचारी' संग्रह में सभी रिकॉर्ड प्राप्त करेंगे और उनके अनुसार कार्य करेंगे।

Code स्पष्टीकरण:

  1. हम अपने एप्लीकेशन के लिए 'Employeeid' नाम से एक रूट बना रहे हैं। इसलिए जब भी कोई ब्राउज़ करेगा http://localhost:3000/Employeeid हमारे एप्लिकेशन के, इस रूट के लिए परिभाषित कोड स्निपेट निष्पादित किया जाएगा।
  2. यहाँ हम db.collection('Employee').find() कमांड के माध्यम से अपने 'Employee' संग्रह में सभी रिकॉर्ड प्राप्त कर रहे हैं। फिर हम इस संग्रह को कर्सर नामक एक चर को असाइन कर रहे हैं। इस कर्सर चर का उपयोग करके, हम संग्रह के सभी रिकॉर्ड ब्राउज़ करने में सक्षम होंगे।
  3. अब हम अपने संग्रह के सभी रिकॉर्ड्स में नेविगेट करने के लिए cursor.each() फ़ंक्शन का उपयोग कर रहे हैं। प्रत्येक रिकॉर्ड के लिए, हम एक कोड स्निपेट परिभाषित करने जा रहे हैं कि प्रत्येक रिकॉर्ड तक पहुँचने पर क्या करना है।
  4. अंत में, हम देखते हैं कि यदि लौटाया गया रिकॉर्ड शून्य नहीं है, तो हम “item.Employeeid” कमांड के माध्यम से कर्मचारी को ले रहे हैं। बाकी कोड केवल एक उचित HTML कोड बनाने के लिए है जो हमारे परिणामों को ब्राउज़र में ठीक से प्रदर्शित करने की अनुमति देगा।

चरण 3) इस चरण में, हम अपना आउटपुट वेब पेज पर भेजेंगे और अपने एप्लिकेशन को एक विशेष पोर्ट पर सुनेंगे।

Code स्पष्टीकरण:

  1. यहाँ हम पिछले चरण में निर्मित संपूर्ण सामग्री को अपने वेब पेज पर भेज रहे हैं। 'res' पैरामीटर हमें प्रतिक्रिया के रूप में अपने वेब पेज पर सामग्री भेजने की अनुमति देता है।
  2. हम अपने संपूर्ण Node.js एप्लिकेशन को पोर्ट 3000 पर सुन रहे हैं।

आउटपुट:

आउटपुट से,

  • यह स्पष्ट रूप से दिखाता है कि कर्मचारी संग्रह में सभी कर्मचारी आईडी पुनर्प्राप्त किए गए थे। ऐसा इसलिए है क्योंकि हम इसका उपयोग करते हैं MongoDB ड्राइवर का उपयोग डेटाबेस से कनेक्ट करने और सभी कर्मचारी रिकॉर्ड को पुनः प्राप्त करने के लिए किया जाता है और बाद में रिकॉर्ड प्रदर्शित करने के लिए "एक्सप्रेस" का उपयोग किया जाता है।

आपके संदर्भ के लिए यह कोड है

var express = require('express');
var app = express();
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';
var str = "";

app.route('/Employeeid').get(function(req, res)

{
MongoClient.connect(url, function(err, db) {
var cursor = db.collection('Employee').find();
//noinspection JSDeprecatedSymbols
cursor.each(function(err, item) {

if (item != null) {
str = str + " Employee id " + item.Employeeid + "</br>";
}
});
res.send(str);
db.close();
});
});

var server = app.listen(3000, function() {});

नोट: cursor.each आपके संस्करण के आधार पर अप्रचलित हो सकता है MongoDB ड्राइवर। आप समस्या से बचने के लिए cursor.each से पहले //noinspection JSDeprecatedSymbols जोड़ सकते हैं। वैकल्पिक रूप से, आप forEach का उपयोग कर सकते हैं। नीचे forEach का उपयोग करके नमूना कोड दिया गया है

var express = require('express');
var app = express();
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';
var str = "";

app.route('/Employeeid').get(function(req, res) {
MongoClient.connect(url, function(err, db) {
var collection = db.collection('Employee');
var cursor = collection.find({});
str = "";
cursor.forEach(function(item) {
if (item != null) {
str = str + "    Employee id  " + item.Employeeid + "</br>";
}
}, function(err) {
res.send(err);
db.close();
}
);
});
});
var server = app.listen(8080, function() {});

अक्सर पूछे जाने वाले प्रश्न

स्थानीय कनेक्शन स्ट्रिंग को क्लस्टर कनेक्ट डायलॉग से एटलस एसआरवी स्ट्रिंग से बदलें, उदाहरण के लिए mongodb+srv://user:password@cluster.mongodb.net/EmployeeDB, फिर इसे पास करें। MongoDB Atlas ठीक वैसे ही जैसे MongoClient को उम्मीद होती है।

स्ट्रिंग को स्रोत कोड से बाहर रखने के लिए, इसे किसी पैकेज जैसे कि एनवायरनमेंट वेरिएबल से लोड करें। डॉटनवफिर .env फ़ाइल को .gitignore में जोड़ें ताकि क्रेडेंशियल कभी भी वर्ज़न कंट्रोल तक न पहुंचें।

नहीं। मुफ़्त MongoDB एटलस क्लस्टर यहां दिए गए सभी उदाहरणों के साथ काम करता है; केवल कनेक्शन स्ट्रिंग बदलती है, इसलिए एक स्थानीय MongoDB कम्युनिटी सर्वर की स्थापना अनिवार्य नहीं बल्कि वैकल्पिक है।

हाँ, जैसे उपकरण गिटहब कोपिलॉट फाइंड, इंसर्टवन या अपडेटवन कॉल को जल्दी से ड्राफ्ट किया जा सकता है, लेकिन डेवलपर को जेनरेट किए गए कोड को चलाने से पहले फ़ील्ड नाम, ड्राइवर संस्करण और कनेक्शन हैंडलिंग को सत्यापित करना चाहिए।

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

इस पोस्ट को संक्षेप में इस प्रकार लिखें: