जहां तक क्वेरी करने का संबंध है SQL रिलेशनल डेटाबेस को जोड़ने का सबसे पसंदीदा तरीका है। यह समझा जाता है कि उपयोगकर्ताओं ने MySQL और PostgreSQL जैसे रिलेशनल डेटाबेस के साथ काम किया होगा जो SQL क्वेरीिंग सुविधा को नियोजित करते हैं। आम तौर पर, SQL को समझना आसान होता है और इसलिए विशेष रूप से रिलेशनल डेटाबेस में व्यापक रूप से उपयोग किया जाता है।
हालाँकि, डेटाबेस में दस्तावेज़ों के विस्तृत सेट को संलग्न करने का प्रयास करते समय SQL काफी जटिल होता है। संक्षेप में, यह दस्तावेज़ डेटाबेस के लिए अभिप्रेत नहीं है क्योंकि यह कई असफलताओं के साथ आता है। उदाहरण के लिए, आप एम्बेडेड सरणी दस्तावेज़ों को आसानी से क्वेरी नहीं कर सकते हैं या इसके बजाय आपको आवश्यक परिणाम देने के लिए डेटा को पुनरावृत्त करने और फ़िल्टर करने के लिए एक उपप्रोग्राम डिज़ाइन करने की आवश्यकता होगी। नतीजतन, इसके परिणामस्वरूप निष्पादन अवधि में वृद्धि होगी। लेकिन SQL में अच्छी समझ रखने से शुरुआत से शुरू करने के बजाय किसी बिंदु से MongoDB के साथ बातचीत करने में बेहतर आधार मिलेगा।
इस ब्लॉग में, हम विभिन्न SQL जॉइन प्रश्नों को दिखाने के लिए स्टूडियो 3T प्रोग्राम का उपयोग करेंगे और बेहतर प्रदर्शन प्राप्त करने के लिए आप उन्हें MongoDB क्वेरी में कैसे फिर से डिज़ाइन कर सकते हैं। कार्यक्रम को इस लिंक से डाउनलोड किया जा सकता है।
SQL को MongoDB से कनेक्ट करना
ऐसे कई ड्राइवर या इंटरफेस हैं जिनके माध्यम से आप मोंगोडीबी के साथ संवाद करने के लिए एसक्यूएल का उपयोग कर सकते हैं, उदाहरण के लिए, ओडीबीसी। ODBC का मतलब ओपन डेटाबेस कनेक्टिविटी है। यह केवल एक इंटरफ़ेस है जो अनुप्रयोगों को उस डेटा तक पहुँचने की मानक प्रक्रिया के रूप में SQL का उपयोग करके डेटाबेस प्रबंधन प्रणालियों में डेटा तक पहुँचने की अनुमति देता है। यह एक अतिरिक्त इंटरऑपरेबिलिटी लाभ के साथ आता है जिससे एक एकल एप्लिकेशन कई डेटाबेस प्रबंधन प्रणालियों तक पहुंच सकता है।
इस ब्लॉग में, हम SQL से कोड तैयार करेंगे और उसका परीक्षण करेंगे और फिर एक MongoDB क्वेरी तैयार करने के लिए इसे एक एकत्रीकरण संपादक के माध्यम से अनुकूलित करेंगे।
एसक्यूएल से MongoDB के लिए मानचित्रण चार्ट
इससे पहले कि हम अधिक विवरण में जाएं, हमें इन 2 डेटाबेस के बीच बुनियादी संबंधों को समझने की जरूरत है, विशेष रूप से क्वेरी की अवधारणा में कीवर्ड।
शब्दावली और अवधारणाएं
एसक्यूएल | <थ>मोंगोडीबी|
---|---|
तालिका पंक्ति स्तंभ तालिका जुड़ती है | संग्रह BSON दस्तावेज़ फ़ील्ड $लुकअप |
एसक्यूएल में प्राथमिक कुंजी एक अद्वितीय कॉलम को परिभाषित करती है जो मूल रूप से रिकॉर्ड समय के क्रम में पंक्तियों को व्यवस्थित करती है। दूसरी ओर, MongoDB में प्राथमिक कुंजी दस्तावेज़ रखने और यह सुनिश्चित करने के लिए एक अद्वितीय फ़ील्ड है कि अनुक्रमित फ़ील्ड डुप्लिकेट मानों को संग्रहीत नहीं करते हैं।
मोंगोडीबी डीबीए बनें - मोंगोडीबी को प्रोडक्शन में लाना सीखें कि मोंगोडीबी को तैनात करने, मॉनिटर करने, प्रबंधित करने और स्केल करने के लिए आपको क्या जानने की जरूरत है मुफ्त में डाउनलोड करेंSQL और MongoDB के बीच संबंध
मान लें कि हमारे पास एक छात्र डेटा है और हम इस डेटा को SQL डेटाबेस और MongoDB दोनों में रिकॉर्ड करना चाहते हैं। हम एक साधारण छात्र वस्तु को इस प्रकार परिभाषित कर सकते हैं:
{
name: ‘James Washington’,
age: 15,
grade: A,
Score: 10.5
}
SQL तालिका बनाने में, हमें कॉलम नाम और डेटा प्रकार को परिभाषित करने की आवश्यकता होती है जबकि MongoDB में पहली प्रविष्टि के दौरान स्वचालित रूप से एक संग्रह बनाया जाएगा।
नीचे दी गई तालिका हमें यह समझने में मदद करेगी कि MongoDB में कुछ SQL कथन कैसे लिखे जा सकते हैं।
SQL स्कीमा स्टेटमेंट | <थ चौड़ाई="50%">मोंगोडीबी स्कीमा विवरण|
---|---|
डेटाबेस में दस्तावेज़ सम्मिलित करने के लिए | हम नेवले जैसे कुछ मॉड्यूल का उपयोग करके एक स्कीमा डिज़ाइन को परिभाषित कर सकते हैं और सहसंबंध दिखाने के लिए सीधे दस्तावेज़ डालने के बजाय फ़ील्ड को ऑब्जेक्ट की तरह परिभाषित कर सकते हैं। दस्तावेज़ डालने के दौरान प्राथमिक दायर आईडी स्वचालित रूप से उत्पन्न हो जाएगी। संग्रह बनाने के लिए एक नया दस्तावेज़ सम्मिलित करना |
मौजूदा तालिका में एक नया कॉलम जोड़ने के लिए एडीडी स्टेटमेंट का उपयोग करना। | संग्रह दस्तावेज़ों की संरचना अच्छी तरह से परिभाषित नहीं है और इसलिए अद्यतन का उपयोग करके दस्तावेज़ स्तर पर दस्तावेज़ों को अद्यतन करें () |
एक कॉलम (इकाइयों) को छोड़ने के लिए | किसी फ़ील्ड (इकाइयों) को छोड़ने के लिए |
छात्रों को एक टेबल छोड़ने के लिए | संग्रह छात्रों को छोड़ने के लिए |
SQL Select Statement | <थ चौड़ाई ="50%">MongoDB विवरण खोजें|
---|---|
सभी पंक्तियों का चयन करें | सभी दस्तावेज़ चुनें |
केवल विशिष्ट कॉलम वापस करने के लिए। | केवल विशिष्ट फ़ील्ड वापस करने के लिए। डिफ़ॉल्ट रूप से, _id फ़ील्ड तब तक लौटा दी जाती है जब तक कि प्रक्षेपण प्रक्रिया में अन्यथा निर्दिष्ट न हो। _id:0 सेट करने का मतलब केवल लौटाए गए दस्तावेज़ में ही नाम और ग्रेड ऑब्जेक्ट मान होंगे। |
कुछ मेल खाने वाले कॉलम मान वाली विशिष्ट पंक्ति(पंक्तियों) का चयन करने के लिए। | कुछ मेल खाने वाले फ़ील्ड मान वाले विशिष्ट दस्तावेज़ (दस्तावेज़ों) का चयन करने के लिए। |
एक स्तंभ के साथ पंक्तियों का चयन करना जिनके मानों में आपूर्ति किए गए मानदंड मान के रूप में कुछ वर्ण हैं | ऐसे फ़ील्ड वाले दस्तावेज़ों का चयन करना जिनके मानों में आपूर्ति किए गए मानदंड मान के रूप में कुछ वर्ण हों |
प्राथमिक कुंजी का उपयोग करके पंक्तियों को आरोही क्रम में वापस करने के लिए। | प्राथमिक कुंजी का उपयोग करके दस्तावेज़ों को आरोही में वापस करने के लिए |
कुछ कॉलम (ग्रेड) के अनुसार लौटाई गई पंक्तियों को समूहित करने के लिए | कुछ फ़ील्ड (ग्रेड) के अनुसार लौटाए गए दस्तावेज़ों को समूहित करना |
लौटाई गई पंक्तियों की संख्या सीमित करना और कुछ को छोड़ना | लौटाए गए दस्तावेज़ों की संख्या सीमित करना और पंक्तियों को छोड़ना |
एक अनिवार्य विकल्प यह जानना है कि हमारी क्वेरी कैसे निष्पादित की जाती है इसलिए व्याख्या पद्धति का उपयोग करें। | |
SQL Update Statement | <थ चौड़ाई="50%">MongoDB अपडेट स्टेटमेंट|
---|---|
उन छात्रों के लिए ग्रेड कॉलम अपडेट करें जिनकी उम्र 15 या उससे अधिक के बराबर है | यहां हम कुछ ऑपरेटरों जैसे $gt, $lt और $lte का उपयोग करते हैं। |
कुछ कॉलम मान बढ़ाना | |
SQL Delete Statement | <थ चौड़ाई ="50%">मोंगोडीबी स्टेटमेंट हटाएं|
---|---|
सभी पंक्तियों को हटाने के लिए | सभी दस्तावेज़ मिटाने के लिए. |
एक विशिष्ट पंक्ति को हटाने के लिए जहां कुछ कॉलम का एक विशिष्ट मान होता है। | |
यह नमूना मानचित्रण तालिका आपको इस बात की बेहतर समझ प्राप्त करने में सक्षम करेगी कि हम अपने अगले विषय में क्या सीखने जा रहे हैं।
एसक्यूएल और स्टूडियो 3टी
स्टूडियो 3T उपलब्ध कार्यक्रमों में से एक है जो SQL और MongoDB को जोड़ने में मदद करता है। इसमें SQL में हेरफेर करने के लिए एक को बढ़ाने के लिए एक SQL क्वेरी सुविधा है। MongoDB भाषा समकक्ष में एक साधारण क्वेरी कोड बनाने के लिए क्वेरी को Mongo शेल में व्याख्या किया गया है। सरल प्रश्न करने के अलावा, स्टूडियो 3T एप्लिकेशन अब जॉइन कर सकता है।
ऊपर दिए गए हमारे नमूना डेटा के लिए, स्टूडियो 3T में आपके डेटाबेस को जोड़ने के बाद, हम अपने मानदंड से मेल खाने वाले दस्तावेज़ को खोजने के लिए SQL विंडो का उपयोग कर सकते हैं अर्थात:
SELECT * FROM students WHERE name LIKE 'James%';
यदि आपके पास नाम फ़ील्ड वाला कोई दस्तावेज़ है जो जेम्स के मान पर सेट है, तो उसे वापस कर दिया जाएगा। इसी तरह, यदि आप क्वेरी कोड टैब पर क्लिक करते हैं, तो आपको समान MongoDB कोड वाली एक विंडो दिखाई देगी। उपरोक्त कथन के लिए, हमारे पास होगा:
db.getCollection("students").find(
{
"name" : /^James.*$/i
}
);
सारांश
कभी-कभी आप SQL पर अपने ज्ञान से MongoDB के साथ बातचीत करने का एक त्वरित तरीका चाहते हैं। हमने MongoDB में SQL और इसके समकक्ष के बीच कुछ बुनियादी कोड समानताएं सीखी हैं। इसके अलावा, स्टूडियो 3T जैसे कुछ प्रोग्रामों में SQL क्वेरी को MongoDB समकक्ष भाषा में बदलने और बेहतर परिणामों के लिए इस क्वेरी को फ़ाइन-ट्यून करने के लिए अच्छी तरह से स्थापित टूल हैं। ठीक है, हम में से अधिकांश के लिए, यह हमारे काम को आसान बनाने और यह सुनिश्चित करने के लिए एक महान उपकरण होगा कि अंत में हमारे पास जो भी कोड है वह हमारे डेटाबेस के प्रदर्शन के लिए बहुत इष्टतम है। इस ब्लॉग के भाग 2 में, हम MongoDB में SQL INNER JOIN के बारे में जानेंगे।