MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

MongoDB 4.4 में नया क्या है?

MongoDB 4.4 (वर्तमान में बीटा में) को MongoDB समुदाय के डेवलपर सुझावों को संबोधित करने के मुख्य एजेंडे के साथ शुरू किया जा रहा है। इस संस्करण को सुविधाजनक और भरोसेमंद पैमाने पर संचालित करने के लिए डेटाबेस की क्षमता को बढ़ाने के लिए जारी किया गया है, इसलिए इसे "उपयोगकर्ता द्वारा संचालित इंजीनियरिंग" सिद्धांत के तहत विकसित किया गया है ताकि यह कई बेहतर सुविधाओं को प्रदान कर सके।

MongoDB 4.4 में बेहतर सुविधाएं

हेज किए गए रीड

MongoDB क्वेरी राउटर कई प्रतिकृति सेटों के समानांतर में अनुरोधों को पढ़ता है और सबसे कुशल नोड से डेटा परिणाम लौटाता है, जिससे एप्लिकेशन विलंबता कम हो जाती है।

निश्चित साझा कुंजियाँ

स्केलिंग प्रक्रिया के दौरान डेटा वितरण को संशोधित करने के बाद एक शार्ड कुंजी में प्रत्यय जोड़ना।

प्रतिबिंबित पठन

यह एक ऐसी सुविधा है जो द्वितीयक प्रतिकृतियों के कैश को पूर्व-गर्म करती है ताकि नियोजित रखरखाव या आउटेज के परिणामस्वरूप होने वाले प्राथमिक चुनावों के परिणाम को कम किया जा सके।

एकत्रीकरण संवर्द्धन

एग्रीगेशन एन्हांसमेंट में कई सुधार हैं, जिसमें एग्रीगेशन एक्सप्रेशंस को परिभाषित करना और कॉस्ट्यूम करना, कई मोंगो संग्रह से डेटा को एक ही परिणाम सेट में जोड़ना, स्ट्रिंग मैनिपुलेशन, और एरे हैंडलिंग में नए ऑपरेटर शामिल हैं। निम्नलिखित कुछ संवर्द्धन हैं:

$आउट

$आउट ऑपरेशन को पहले के संस्करण के विपरीत अलग-अलग डेटाबेस में आउटपुट संग्रह परिणामों में सुधार किया गया है जो केवल उसी डेटाबेस में संग्रह के लिए आउटपुट कर सकता था जो आक्रामकता थी।

$indexStats

$indexStats में MongoDB 4.4 में नए फ़ील्ड आउटपुट हैं जिनमें फ़ील्ड शामिल हैं:

बिल्डिंग

यह एक बूलियन फ्लैग है, जो इंडेक्स के बनने का संकेत देता है।

कल्पना

प्रत्येक अनुक्रमणिका के लिए विशिष्टता दस्तावेज़

shard

यदि आवश्यक हो तो एक शार्प का विशिष्ट नाम

$मर्ज

MongoDB 4.4 $merge में उसी संग्रह पर आउटपुट में सुधार किया गया है जिसे अपग्रेड किया जा रहा है। इसके अतिरिक्त, कोई भी उस संग्रह में आउटपुट कर सकता है जो पाइपलाइन पर $lookup की तरह दिखाई देता है।

$planCacheStats परिवर्तन

$planCacheStats स्थिति को MongoDB 4.4 में mongod और mongos दोनों उदाहरणों को चलाने के लिए सुधारा गया है। इसके अलावा, $planCacheSTats में एक नया फ़ील्ड है जिसे मोंगो चलाते समय होस्ट फ़ील्ड के रूप में जाना जाता है। PlanCache.list() $planCacheStats एकत्रीकरण चरण के लिए एक आवरण है।

$colStats परिवर्तन

$collStats को वृद्धि दस्तावेज़ीकरण के दौरान क्वेरी निष्पादन आँकड़ों को स्वीकार करने के लिए बनाया गया है। इसके अतिरिक्त, संग्रह निम्न विवरण के साथ फ़ील्ड के रूप में स्कैन करता है;

फ़ील्ड का नाम

विवरण

नॉनटेलेबल

यह एक 64-बिट पूर्णांक है जो कई क्वेरी पर संग्रह स्कैन करता है जो टेलेबल कर्सर का उपयोग नहीं करते हैं।

कुल

कुल क्वेरी का एक संग्रह है जो संग्रह स्कैन किया जाता है जो एक पूंछ योग्य कर्सर का उपयोग नहीं करता है।

$unionWith Aggregation

MongoDB ने $unionWith जोड़ा है, यह एक ऐसी सुविधा है जो संग्रह सेट को एकीकृत करती है, यानी यह कई संग्रहों से एक पाइपलाइन के परिणामों को एक सेट में जोड़ती है।

$unionWith सिंटेक्स

$unionWith में निम्नलिखित सामान्य सिंटैक्स है:

cd{ $unionWith: { coll: "<collection>", pipeline: [ <stage1>, ... ] } }

$unionWith में सिंटैक्स का एक सरलीकृत संस्करण है जिसका उपयोग संग्रह से सभी दस्तावेज़ों को शामिल करने के लिए किया जाता है:

{ $unionWith: "<collection>" }  // include all documents from the specified collection

$संचयक एकत्रीकरण

$accumulator MongoDB 4.4 में एक और नई सुविधा है जो एक कस्टम संचायक ऑपरेटर को निर्दिष्ट करती है। संचायक वे ऑपरेटर होते हैं जो राज्य नहीं बदलते हैं क्योंकि दस्तावेज़ पाइपलाइन के साथ प्रगति करते हैं। आप जावास्क्रिप्ट फ़ंक्शन निष्पादित करने के लिए $accumulator ऑपरेटर का उपयोग कर सकते हैं जो MongoDB द्वारा समर्थित नहीं हैं। $accumulator पाइपलाइन के निम्नलिखित तीन चरणों में पाया जाता है:

  1. $bucket अवस्था:केवल ऐसे दस्तावेज़ों को आउटपुट करता है जिनमें कम से कम एक दस्तावेज़ इनपुट होता है।
  2. $group चरण:निर्दिष्ट _id द्वारा दस्तावेज़ इनपुट करता है और प्रत्येक विशेष समूह के लिए एक दस्तावेज़ आउटपुट करता है
  3. $bucketAuto चरण:यह दस्तावेज़ प्रविष्टियों को विशिष्ट समूह संख्याओं में क्रमबद्ध करता है जिन्हें बकेट कहा जाता है।

सिंटैक्स

$accumulator का सिंटैक्स इस प्रकार है:

{ $accumulator:{

init: <code>,

initArgs: <array expression>,    // Optional

accumulate: <code>,

accumulateArgs: <array expression>,

merge: <code>,

finalize: <code>, // Optional

lang: <string>

  }}

$फंक्शन एग्रीगेशन

$फ़ंक्शन एग्रीगेशन JavaScript में एग्रीगेशन फ़ंक्शन को परिभाषित करता है।

$function ऑपरेटर का उपयोग कार्यों को परिभाषित करने के लिए किया जा सकता है ताकि उन व्यवहारों का उपयोग किया जा सके जो MongoDB द्वारा समर्थित नहीं हैं

$function का सिंटैक्स नीचे दिया गया है:

{

  $function: {

body: <code>,

args: <array expression>,

lang: "js"

  }

}

नवीनतम MongoDB 4.4 संस्करण में शामिल अन्य विशेषताएं हैं:लेखन चिंताएं, वैश्विक रीड, स्ट्रीम प्रतिकृति, पुन:प्रारंभ करने योग्य प्रारंभिक सिंक, और कंपाउंड हैश शार्ड।

MongoDB रेप्लिका सेट में नया क्या है?

पुन:प्रारंभ करने योग्य आरंभिक समन्वयन

MongoDB 4.4 में एक ऐसी सुविधा है जो बाधित सिंक प्रक्रिया को फिर से शुरू करने का प्रयास करती है।

प्रतिकृति स्ट्रीमिंग

MongoDB के पिछले संस्करणों में, सेकेंडरी ने स्रोत से सिंक करने के लिए जारी किए गए अनुरोध द्वारा oplog के बैच एकत्र किए। MongoDB 4.4 के साथ, सिंक प्रोसेस फॉर्म सोर्स सेकेंडरी सिंक प्रोसेस को oplog प्रविष्टियों की निरंतर स्ट्रीम भेजेगा।

रोलबैक निर्देशिका

रोलबैक पर MongoDB 4.4 से, संग्रह निर्देशिका को संग्रह के UUID और संग्रह नाम स्थान के अनुसार नाम दिया गया है।

न्यूनतम ओपलॉग अवधारण अवधि

MongoDB 4.4 से, यह निर्दिष्ट करना संभव है कि कम से कम कितने घंटे आप एक oplog प्रविष्टि को संरक्षित करना चाहते हैं।

प्रतिकृति सेट पुनर्विन्यास परिवर्तन

MongoDB 4.4 में replSetReconfig नामक एक कमांड है जो एक समय में एक से अधिक मतदाता को जोड़ने या हटाने की अनुमति नहीं देता है। MongoDB 4.4 में एक और नई सुविधा replSetGetConfig में परिवर्तन है। MongoDB 4.4 replSetConfig एक नया विकल्प प्रतिबद्धता स्थिति निर्धारित कर सकता है।

कंपाउंड हैशेड शार्ड कुंजियां

MongoDB 4.4 से शुरू होकर, आप एकल हैशेड फ़ील्ड के साथ कंपाउंड शार्ड कुंजी का उपयोग करके संग्रह को शार्प कर सकते हैं। 4.4 से पहले, MongoDB हैशेड फ़ील्ड के साथ कंपाउंड शार्ड कुंजियों का समर्थन नहीं करता था। कंपाउंड हैशेड शार्किंग ज़ोन शार्डिंग जैसी सुविधाओं का समर्थन करती है, जहाँ प्रीफ़िक्स (यानी, पहले) नॉन-हैशेड फ़ील्ड या फ़ील्ड ज़ोन रेंज का समर्थन करते हैं, जबकि हैशेड फ़ील्ड शार्प किए गए डेटा के अधिक वितरण का समर्थन करता है। उदाहरण के लिए, निम्न ऑपरेशन ज़ोन्ड शार्डिंग का समर्थन करने वाले कंपाउंड हैशेड शार्ड की पर संग्रह को शार्प करता है:

sh.shardCollection(

  "examples.compoundHashedCollection",

  { "fieldA" : 1, "fieldB" : 1, "fieldC" : "hashed" }

)

सामान्य साझा क्लस्टर सुधार

सूचकांक संगतता जांच

MongoDB 4.4 में, कॉन्फ़िगरेशन सर्वर अनिवार्य रूप से, डिफ़ॉल्ट रूप से, शार्प किए गए संग्रह के लिए शार्क पर फ़ाइल अनियमितताओं की जांच करता है। कमांड सर्वरस्टैटस कॉन्फ़िगरेशन सर्वर पर चलते समय फ़ाइल अनियमितताओं पर रिपोर्ट करने के लिए shardedIndexConsistency फ़ील्ड देता है। MongoDB 4.4 में, आपके पास पहले से एक से अधिक रिमूवशर्ड ऑपरेशन होंगे। पिछले अनुकूलन में, रिमूवशर्ड एक और रिमूवशर्ड ऑपरेशन पहले से होने की संभावना पर एक गलती लौटाता है।

शार्द कुंजी सीमा

रूप 4.4 से शुरू होकर, MongoDB शार्द कुंजी अनुमान पर 512-बाइट बाधा को हटा देता है। MongoDB 4.2 और पूर्व के लिए, एक शार्ड कुंजी 512 बाइट्स से अधिक नहीं हो सकती है।

बेहतर कैटलॉग कैश रीफ़्रेश

MongoDB 4.4 में, यदि कोई पुराना चंक है, तो कैटलॉग कैशे उसे फिर से चालू कर देता है ताकि चंक वाला एक शार्क प्राप्त किया जा सके।

MongoDB 4.4 में enableFinerGrainedCatalogCacheRefresh है जो कैटलॉग कैश रिवाइवल को खराब करने के लिए एक पैरामीटर है। enableFinerGrainedCatalogCacheRefresh शार्ड पर ध्यान केंद्रित करता है और अधिक अनुभवी कैटलॉग कैश रिवाइव व्यवहार का उपयोग करता है।

enableFinerGrainedCatalogCacheRefresh पैरामीटर डिफ़ॉल्ट रूप से सही है।

MongoDB 4.4 में क्वेरी और शेयरिंग एन्हांसमेंट

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

MongoDB के विकास ने MongoDB में प्रदान की गई सामग्री के शार्क को पुनर्गणना करना चुनौतीपूर्ण बना दिया है। पुनर्संतुलन को सक्षम करने के लिए, MongoDB 4.4 रिलीज ने रिफाइनेबल शार्ड कुंजियाँ पेश की हैं जो दस्तावेज़ों की शार्प कीज़ को संशोधित करने की अनुमति देती हैं।

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

उपयोगकर्ता द्वारा समय के साथ इसे देखने के तरीके के आधार पर पुनर्संतुलन प्रोग्रामेटिक या आक्रामक रूप से हो सकता है।

अन्य सुधार

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

डेटा को सर्वर पर स्थानांतरित और समेकित किया जा सकता है और क्लाइंट को पास किया जा सकता है, और इस प्रक्रिया को एक पूर्ण परिणाम को प्रबंधित करने के लिए कई यात्राओं की आवश्यकता नहीं होती है।

$function कॉस्ट्यूम एग्रीगेशन में से एक है जो सर्वर-साइड पर अधिक जटिल एग्रीगेशन के निष्पादन को सक्षम बनाता है और डेटा प्रोसेसिंग प्रक्रिया को बढ़ाता है।

विभिन्न संस्करण वेशभूषा प्रक्रियाएं जारी किए गए MongoDB 4.4 पर दिखाई देती हैं। कॉस्ट्यूम सुविधाओं को बीटा संस्करण के बढ़े हुए प्रदर्शन से जोड़ा गया है। फिर भी, $function को केवल तभी लागू किया जाता है जब अन्य पोशाक और अंतर्निहित सुविधाएं चल रही प्रक्रिया में पर्याप्त नहीं होती हैं।

MongoDB क्वेरी भाषा और ड्राइवर

  1. कस्टम एग्रीगेशन दिखावे के मालिक एग्रीगेशन एक्ज़ीक्यूशन पाइपलाइन के हिस्से के रूप में MongoDB का विस्तार करते हुए काम करते हैं।
  2. यूनियन एग्रीगेशन पाइपलाइन में एकाधिक संग्रह से डेटा सम्मिश्रण के माध्यम से यूनियन एग्रीगेशन का अधिक गहन विश्लेषण और अन्वेषण है।
  3. चिंताओं को लिखें और ग्लोबल रीड टू राइट ड्यूरेबिलिटी और क्लस्टर रीड आइसोलेशन कॉन्फ़िगर करें।
  4. स्विफ्ट ड्राइवर और न्यू रस्ट
  5. स्केल-आउट लचीलापन और प्रदर्शन
  6. स्ट्रीमिंग प्रतिकृति और एक साथ अनुक्रमण MongoDB 4.4 में उपयोगकर्ताओं को डेटा प्रदान करने के लिए प्रतिकृति अंतराल को कम करता है।
  7. मोंगोडीबी में एकाधिक डेटा प्रतिकृतियों के लिए एक पठन अनुरोध सबमिट करके हेज्ड रीड्स न्यूनतम p65 और p99 विलंबता के कारण परिणाम जल्द से जल्द लौटाए जाते हैं।
  8. कंपाउंड हैश कीज़ के रूप में डेटा स्थान को बनाए रखना उनकी शार्ड कुंजी के साथ विभिन्न शार्क में समान रूप से वितरित किया जाता है।
  9. किसी भी समय शार्ड कुंजी को परिभाषित और परिशोधित करते समय कोई सिस्टम डाउनटाउन नहीं है।

लचीलापन और सुरक्षा

  1. MongoDB 4.4 बीटा में प्रमाणीकरण 50% से अधिक तेज़ है और TLS 1.3 है।
  2. MongoDB एटलस से कनेक्शन के लिए AWS IASM प्रमाणीकरण की आवश्यकता होती है, जो अस्थायी Amazon IAM क्रेडेंशियल और मौजूदा नियमित का पुन:उपयोग करके क्लाउड-नेटिव सुरक्षा को सरल बनाता है।
  3.  रिज्यूमेबल इनिशियल सिंक द्वारा नोड्स को रिकवर करता है जो नई प्रतिकृतियां जोड़कर स्केल-आउट प्रक्रिया को आसान बनाता है। नियोजित रखरखाव या आउटेज के बाद माध्यमिक के कैश को गर्म करने वाले मिररड रीड्स द्वारा प्राथमिक चुनावों के प्रभाव को कम करना।

निष्कर्ष

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

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगो के बिना उल्का

  2. MongoDB में कस्टम ऑब्जेक्ट आईडी बनाना

  3. नेवला:सत्यापन त्रुटि पथ आवश्यक है

  4. MongoDB - संग्रह में प्रति समूह अधिकतम विशेषता वाले दस्तावेज़ प्राप्त करें

  5. MongoDB:नेस्टेड सरणी फ़िल्टरिंग के साथ खोजें और खोजें