MongoDB क्या है? परिचय, वास्तुकला, सुविधाएँ & उदाहरण

विषय - सूची:

Anonim

MongoDB क्या है?

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

इस ट्यूटोरियल में, आप सीखेंगे-

  • MongoDB सुविधाएँ
  • MongoDB उदाहरण
  • MongoDB आर्किटेक्चर के प्रमुख घटक
  • क्यों MongoDB का उपयोग करें
  • MongoDB में डेटा मॉडलिंग
  • MongoDB और RDBMS के बीच अंतर

MongoDB सुविधाएँ

    1. प्रत्येक डेटाबेस में संग्रह होते हैं जो बदले में दस्तावेज होते हैं। प्रत्येक दस्तावेज़ अलग-अलग क्षेत्रों की संख्या के साथ भिन्न हो सकते हैं। प्रत्येक दस्तावेज़ का आकार और सामग्री एक दूसरे से भिन्न हो सकती है।
    2. दस्तावेज़ संरचना इस बात से अधिक है कि डेवलपर्स अपनी संबंधित प्रोग्रामिंग भाषाओं में अपनी कक्षाओं और वस्तुओं का निर्माण कैसे करते हैं। डेवलपर्स अक्सर कहेंगे कि उनकी कक्षाएं पंक्तियों और कॉलम नहीं हैं, लेकिन कुंजी-मूल्य जोड़े के साथ एक स्पष्ट संरचना है।
    3. पंक्तियों (या दस्तावेज़ों को मोंगोडीबी में कहा जाता है) को पहले से परिभाषित स्कीमा की आवश्यकता नहीं है। इसके बजाय, खेतों को मक्खी पर बनाया जा सकता है।
    4. MongoDB के भीतर उपलब्ध डेटा मॉडल आपको पदानुक्रमित संबंधों का प्रतिनिधित्व करने के लिए, सरणियों को संग्रहीत करने के लिए, और अन्य जटिल संरचनाओं को और अधिक आसानी से अनुमति देता है।
  1. स्केलेबिलिटी - MongoDB वातावरण बहुत स्केलेबल हैं। दुनिया भर की कंपनियों ने डेटाबेस के भीतर लाखों दस्तावेजों के साथ 100+ नोड्स चलाने वाले कुछ समूहों को परिभाषित किया है

MongoDB उदाहरण

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

  1. _Id फ़ील्ड को MongoDB द्वारा संग्रह में दस्तावेज़ की विशिष्ट पहचान के लिए जोड़ा गया है।
  2. आप जो नोट कर सकते हैं वह यह है कि ऑर्डर डेटा (ऑर्डरिड, प्रोडक्ट, और क्वांटिटी) जो कि आरडीबीएमएस में आम तौर पर एक अलग तालिका में संग्रहीत किया जाएगा, जबकि मोंगोबीडी में यह वास्तव में संग्रह में एक एम्बेडेड दस्तावेज़ के रूप में संग्रहीत किया जाता है। यह एक प्रमुख अंतर है कि कैसे डेटा MongoDB में मॉडलिंग की जाती है।

MongoDB आर्किटेक्चर के प्रमुख घटक

नीचे कुछ सामान्य शब्द MongoDB में उपयोग किए गए हैं

  1. _id - यह हर MongoDB दस्तावेज़ में आवश्यक फ़ील्ड है। _Id फ़ील्ड MongoDB दस्तावेज़ में एक अद्वितीय मान का प्रतिनिधित्व करता है। _Id फ़ील्ड दस्तावेज़ की प्राथमिक कुंजी की तरह है। यदि आप एक _id फ़ील्ड के बिना एक नया दस्तावेज़ बनाते हैं, तो MongoDB स्वचालित रूप से फ़ील्ड बना देगा। इसलिए, उदाहरण के लिए, यदि हम उपरोक्त ग्राहक तालिका का उदाहरण देखते हैं, तो Mongo DB संग्रह में प्रत्येक दस्तावेज़ में एक 24 अंकों का विशिष्ट पहचानकर्ता जोड़ देगा।
_ id ग्राहक आईडी, ग्राहक पहचान ग्राहक का नाम आदेश ID
563479cc8a8a4246bd27d784 1 1 गुरु ९९ 111
563479cc7a8a4246bd47d784 २२ ट्रेवर स्मिथ 222 है
563479cc9a8a4246bd57d784 ३३ निकोल 333
  1. संग्रह - यह MongoDB दस्तावेजों का समूह है। एक संग्रह एक तालिका के बराबर है जो किसी अन्य RDMS जैसे कि Oracle या MS SQL में बनाई गई है। एक डेटाबेस में एक संग्रह मौजूद है। जैसा कि परिचय संग्रह से देखा गया है, किसी प्रकार की संरचना को लागू नहीं करता है।
  2. कर्सर - यह क्वेरी के परिणाम सेट के लिए एक संकेतक है। परिणाम प्राप्त करने के लिए ग्राहक एक कर्सर के माध्यम से पुनरावृति कर सकते हैं।
  3. डेटाबेस - यह RDMS जैसे संग्रह के लिए एक कंटेनर है जिसमें यह तालिकाओं के लिए एक कंटेनर है। प्रत्येक डेटाबेस को फ़ाइल सिस्टम पर फ़ाइलों का अपना सेट मिलता है। एक MongoDB सर्वर कई डेटाबेस स्टोर कर सकता है।
  4. दस्तावेज़ - एक MongoDB संग्रह में एक रिकॉर्ड मूल रूप से एक दस्तावेज़ कहा जाता है। दस्तावेज़, बदले में, फ़ील्ड नाम और मूल्यों से मिलकर बनेगा।
  5. फ़ील्ड - एक दस्तावेज़ में एक नाम-मूल्य जोड़ी। एक दस्तावेज़ में शून्य या अधिक फ़ील्ड हैं। रिलेशनल डेटाबेस में कॉलम कॉलम के अनुरूप होते हैं।

    निम्न आरेख कुंजी मान जोड़े के साथ फ़ील्ड्स का एक उदाहरण दिखाता है। इसलिए नीचे दिए गए उदाहरण में CustomerID और 11 दस्तावेज़ में परिभाषित कुंजी मूल्य जोड़ी में से एक है।

  1. JSON - इसे जावास्क्रिप्ट ऑब्जेक्ट नोटेशन के रूप में जाना जाता है। यह संरचित डेटा को व्यक्त करने के लिए एक मानव पठनीय, सादा पाठ प्रारूप है। JSON वर्तमान में कई प्रोग्रामिंग भाषाओं में समर्थित है।

बस _id फ़ील्ड और सामान्य संग्रह फ़ील्ड के बीच महत्वपूर्ण अंतर पर एक त्वरित टिप्पणी। _Id फ़ील्ड का उपयोग किसी संग्रह में दस्तावेज़ों को विशिष्ट रूप से पहचानने के लिए किया जाता है और संग्रह तैयार होने पर MongoDB द्वारा स्वचालित रूप से जोड़ा जाता है।

क्यों MongoDB का उपयोग करें?

नीचे कुछ कारणों से बताया गया है कि क्यों किसी को MongoDB का उपयोग शुरू करना चाहिए

  1. दस्तावेज़-उन्मुख - चूंकि MongoDB एक NoSQL प्रकार का डेटाबेस है, इसलिए रिलेशनल प्रकार के प्रारूप में डेटा रखने के बजाय, यह दस्तावेज़ों में डेटा संग्रहीत करता है। यह MongoDB बहुत ही लचीली और वास्तविक व्यावसायिक दुनिया की स्थिति और आवश्यकताओं के अनुकूल है।
  2. तदर्थ प्रश्न - MongoDB फ़ील्ड, श्रेणी क्वेरी और नियमित अभिव्यक्ति खोज द्वारा खोज का समर्थन करता है। दस्तावेज़ों के भीतर विशिष्ट फ़ील्ड वापस करने के लिए क्वेरीज़ बनाई जा सकती हैं।
  3. अनुक्रमण - MongoDB के भीतर खोजों के प्रदर्शन को बेहतर बनाने के लिए अनुक्रमणिका बनाई जा सकती है। MongoDB दस्तावेज़ में किसी भी फ़ील्ड को अनुक्रमित किया जा सकता है।
  4. प्रतिकृति - MongoDB प्रतिकृति सेट के साथ उच्च उपलब्धता प्रदान कर सकता है। एक प्रतिकृति सेट में दो या अधिक mongo DB उदाहरण होते हैं। प्रत्येक प्रतिकृति सेट सदस्य किसी भी समय प्राथमिक या द्वितीयक प्रतिकृति की भूमिका निभा सकता है। प्राथमिक प्रतिकृति मुख्य सर्वर है जो क्लाइंट के साथ इंटरैक्ट करता है और सभी रीड / राइट ऑपरेशन करता है। माध्यमिक प्रतिकृतियां अंतर्निहित प्रतिकृति का उपयोग करके प्राथमिक के डेटा की एक प्रति बनाए रखती हैं। जब एक प्राथमिक प्रतिकृति विफल हो जाती है, तो प्रतिकृति सेट स्वचालित रूप से द्वितीयक पर स्विच हो जाती है और फिर यह प्राथमिक सर्वर बन जाती है।
  5. लोड संतुलन - MongoDB कई MongoDB उदाहरणों में डेटा को विभाजित करके क्षैतिज रूप से स्केल करने की अवधारणा का उपयोग करता है। MongoDB हार्डवेयर विफलता के मामले में सिस्टम को चालू रखने और चलाने के लिए लोड और / या डुप्लिकेट डेटा को संतुलित करते हुए कई सर्वरों पर चल सकता है।

MongoDB में डेटा मॉडलिंग

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

मोंगो में डेटा मॉडलिंग करते समय, निम्नलिखित बातों को ध्यान में रखें

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

MongoDB और RDBMS के बीच अंतर

नीचे MongoDB और RDBMS के बीच कुछ प्रमुख अंतर हैं

आरडीबीएमएस MongoDB अंतर
टेबल संग्रह RDBMS में, तालिका में कॉलम और पंक्तियाँ होती हैं, जिनका उपयोग डेटा को संग्रहीत करने के लिए किया जाता है, जबकि MongoDB में, इसी संरचना को एक संग्रह के रूप में जाना जाता है। संग्रह में दस्तावेज़ होते हैं जिनमें बदले में फ़ील्ड होते हैं, जो बदले में कुंजी-मूल्य जोड़े होते हैं।
पंक्ति डाक्यूमेंट RDBMS में, पंक्ति एक तालिका में एकल, अंतर्निहित संरचित डेटा आइटम का प्रतिनिधित्व करती है। MongoDB में, डेटा दस्तावेजों में संग्रहीत किया जाता है।
स्तंभ मैदान RDBMS में, स्तंभ डेटा मानों के एक सेट को दर्शाता है। इन MongoDB को फील्ड्स के रूप में जाना जाता है।
में शामिल एंबेडेड दस्तावेज RDBMS में, डेटा को कभी-कभी विभिन्न तालिकाओं में फैलाया जाता है और सभी डेटा का पूरा दृश्य दिखाने के लिए, डेटा प्राप्त करने के लिए कभी-कभी तालिकाओं में एक जुड़ाव बनता है। MongoDB में, डेटा आमतौर पर एक संग्रह में संग्रहीत किया जाता है, लेकिन एंबेडेड दस्तावेजों का उपयोग करके अलग किया जाता है। तो MongoDB में जुड़ने की कोई अवधारणा नहीं है।

शब्दों के अंतर के अलावा, कुछ अन्य अंतर नीचे दिखाए गए हैं

  1. संबंधपरक डेटाबेस को डेटा अखंडता को लागू करने के लिए जाना जाता है। यह MongoDB में एक स्पष्ट आवश्यकता नहीं है।
  2. RDBMS के लिए आवश्यक है कि डेटा को पहले सामान्यीकृत किया जाए ताकि वह अनाथ रिकॉर्ड को रोक सके और डेटा को सामान्य बना सके और फिर अधिक तालिकाओं की आवश्यकता हो, जिसके परिणामस्वरूप अधिक तालिका जोड़ हो जाएंगे, इस प्रकार अधिक कुंजी और अनुक्रमित की आवश्यकता होगी।

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