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

शुरुआती के लिए MongoDB के साथ पायथन डेटाबेस प्रोग्रामिंग

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

NoSQL क्या है?

पायथन की लोकप्रियता आंशिक रूप से बढ़ती जा रही है क्योंकि यह आसानी से नई तकनीकों के साथ काम कर सकता है। ऐसी ही एक "नई" तकनीक "नोएसक्यूएल" डेटाबेस का उपयोग है। इस प्रकार के डेटाबेस की सबसे आकर्षक विशेषताओं में से एक यह तथ्य है कि, जैसा कि नाम से ही स्पष्ट है, आमतौर पर कोई अतिरिक्त क्वेरी भाषा नहीं होती है, जैसे कि SQL के कई रूपों में से एक, जिसे डेटाबेस के साथ काम करने के लिए सीखा जाना चाहिए। एक प्रोग्रामेटिक दृष्टिकोण से। यह एप्लिकेशन विकास को बहुत आसान बनाता है क्योंकि प्रोग्रामिंग भाषा की मूल डेटा संरचनाएं और इसके सिंटैक्स वास्तव में "क्वेरी भाषा" हैं, बशर्ते उचित मॉड्यूल विकास पर्यावरण में जोड़े जाते हैं।

ज्यादातर . के अलावा NoSQL डेटाबेस एक क्वेरी भाषा का उपयोग नहीं करते हुए, डेटा को आंतरिक रूप से इस तरह से संरचित करते हैं जो SQL डेटाबेस से काफी भिन्न होता है। एक डेवलपर जो SQL प्रोग्रामिंग प्रतिमान के लिए अधिक अभ्यस्त है, उसे अपनी सोच को अनुकूलित करना चाहिए कि NoSQL व्यवसाय कैसे करता है। हुड के तहत आगे जाकर, नोएसक्यूएल डेटाबेस सर्वर का डिज़ाइन समान असमानता साझा करता है। NoSQL डेटाबेस सर्वर "अंतिम स्थिरता" के साथ गति और मापनीयता पर अधिक केंद्रित हैं, SQL डेटाबेस सर्वर के विपरीत जो तत्काल स्थिरता पर अधिक केंद्रित हैं।

MongoDB क्या है?

MongoDB कई "NoSQL" डेटाबेस में से एक है। मारियाडीबी की तरह, यह एक्सेस प्रबंधन के लिए अपने स्वयं के उपयोगकर्ता नाम और पासवर्ड सिस्टम का उपयोग करता है। MongoDB, शून्य-लागत डाउनलोड करने योग्य सर्वर सॉफ़्टवेयर की पेशकश के अलावा, एक शून्य-लागत क्लाउड-आधारित परिचयात्मक विकल्प भी प्रदान करता है (इसके एटलस के माध्यम से) ऑफ़रिंग) जो किसी इंस्टेंस को डाउनलोड करने और कॉन्फ़िगर करने की आवश्यकता को कम करता है। इस डेटाबेस प्रोग्रामिंग ट्यूटोरियल में प्रदर्शन MongoDB के क्लाउड-होस्टेड फ्री इंस्टेंस का उपयोग करेंगे।

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

  • MongoDB समुदाय सर्वर डाउनलोड करें
  • MongoDB जीरो-कॉस्ट क्लाउड-आधारित परिचयात्मक पेशकश
  • मोंगोडीबी शैल डाउनलोड

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

सॉफ़्टवेयर विकास के लिए MongoDB को कैसे कॉन्फ़िगर करें

MongoDB शून्य-लागत क्लाउड-आधारित परिचयात्मक पेशकश कॉन्फ़िगरेशन पूरी तरह से वेब-आधारित है। सिंगल-साइन-ऑन के प्रयोजनों के लिए इसे आसानी से किसी के Google खाते से जोड़ा जा सकता है। बस निम्नलिखित चेतावनियों को ध्यान में रखें:

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

MongoDB डेटाबेस सर्वर से कैसे कनेक्ट करें

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

चित्र 1 - हाइलाइट किए गए कनेक्ट बटन के साथ MongoDB एटलस डैशबोर्ड

ध्यान दें, डेटाबेस उपयोगकर्ता नाम और पासवर्ड जैसी सेटिंग्स, और कनेक्शन के लिए अनुमत IP श्रेणियां क्रमशः डेटाबेस एक्सेस और नेटवर्क एक्सेस लिंक में सेट की जा सकती हैं।

नीचे दो कनेक्शन उदाहरण हैं। पहला MongoDB शेल के लिए है।

MongoDB:कमांड लाइन से कनेक्ट करना

एक विंडोज कमांड प्रॉम्प्ट खोलना शुरुआत के लिए SQL एक्सप्रेस के साथ पायथन डेटाबेस प्रोग्रामिंग में ओपनिंग कमांड प्रॉम्प्ट विंडोज के तहत समझाया गया है शीर्षक।

चित्र 2 - कमांड लाइन के माध्यम से MongoDB शेल से कनेक्ट करना

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

चित्र 3 - कमांड-लाइन में पासवर्ड के साथ प्रमाणीकरण।

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

साथ ही, उम्मीद है कि किसी ने नहीं सोचा था कि मैं वास्तव में 123456 . का उपयोग करूंगा पासवर्ड के रूप में, है ना?

चित्र 4 - बस जाँच हो रही है 🙂

ध्यान दें कि उपरोक्त दोनों उदाहरणों में, ^ Windows कमांड प्रॉम्प्ट में एक लाइन निरंतरता प्रतीक के रूप में वर्ण का उपयोग किया जाता है।

MongoDB को Python से कनेक्ट करना

उपयुक्त परिवर्तनों के साथ निम्नलिखित स्ट्रिंग को PyMongo द्वारा उपयोग के लिए Python कोड में रखा जा सकता है ड्राइवर:

चित्र 5 - पायथन और पाइमोंगो के माध्यम से जुड़ना

उपरोक्त कनेक्शन स्ट्रिंग में, डेटाबेस का नाम RazorDemo . है myFirstDatabase . के स्थान पर उपयोग किया जाएगा ।

MongoDB में डेटाबेस कैसे बनाएं

MongoDB एक डेटाबेस को तब तक "बनाना" नहीं है जब तक कि उस डेटाबेस का "उपयोग" नहीं किया जाता है और डेटा वास्तव में उसमें लिखा जाता है। नीचे दी गई छवि RazorDemo का उपयोग करके MongoDB एटलस सेवा से एक सफल कनेक्शन दिखाती है डेटाबेस, लेकिन शो डीबीएस . का उपयोग करते समय ऐसा कोई डेटाबेस सूचीबद्ध नहीं है आदेश:

चित्र 6 - अभी तक कोई रेज़रडेमो डेटाबेस नहीं है

MongoDB में डेटाबेस का "उपयोग" कैसे करें

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

चित्र 7 - डेटाबेस के बीच स्विच करना

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

संग्रह में प्रत्येक प्रविष्टि को दस्तावेज़ . के रूप में संदर्भित किया जाता है . यह SQL-उन्मुख डेटाबेस तालिका में रिकॉर्ड के समान है।

ध्यान दें, जिस तरह एक प्रमुख एप्लिकेशन के लिए तालिका बनाएं को सहेजना महत्वपूर्ण है SQL-ओरिएंटेड डेटाबेस में स्टेटमेंट, एक प्रमुख एप्लिकेशन के लिए MongoDB डेटाबेस के लिए प्रारंभिक डेटाबेस और कलेक्शन क्रिएशन कमांड पर भी यही तर्क लागू होगा।

नीचे दिए गए आदेश कलाकार बनाएंगे इसमें एक दस्तावेज़ सम्मिलित करके संग्रह करें, और फिर कलाकारों . से पूछताछ करें संग्रह सम्मिलित ऑपरेशन की सफलता को सत्यापित करने के लिए। ध्यान दें कि इंसर्ट ऑपरेशन JSON सिंटैक्स का उपयोग कैसे करता है:

db.Artists.insertOne({artist_name: "Skeered Tigon Stripes"})

db.Artists.find({})

Listing 1 - Inserting a new document.

ये कमांड MongoDB शेल में निम्न आउटपुट देते हैं:

चित्र 8 - कलाकार संग्रह बनाना

_id ऊपर दिखाया गया स्वचालित रूप से बनाया गया था और संग्रह के भीतर अद्वितीय है, जो SQL-उन्मुख डेटाबेस में स्वचालित रूप से उत्पन्न प्राथमिक कुंजी मान के समान है।

ध्यान दें, MongoDB शेल रिपोर्ट कर सकता है कि .insert() आदेश बहिष्कृत है। यह उदाहरण .insertOne() . का उपयोग करता है कमांड क्योंकि यह दिए गए विकल्पों में से एक है।

एल्बम . बनाने के लिए समान सिंटैक्स का उपयोग किया जा सकता है संग्रह:

db.Albums.insertOne({artist_name: "Skeered Tigon Stripes",album_name: "Genetically Engineered Critters"})

db.Albums.find({})

Listing 2 - Inserting another new document

चित्र 9 - एल्बम संग्रह बनाना

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

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

एल्बम . के लिए कुछ और दस्तावेज़ संग्रह:

db.Albums.insertOne({ artist_name: "Skeered Tigon Stripes", album_name: "Volume Control: No" })
db.Albums.insertOne({ artist_name: "Skeered Tigon Stripes", album_name: "Verse Vica })
db.Albums.insertOne({ artist_name: "Skeered Tigon Stripes", album_name: "Rotten to the Core" })

db.Albums.find({})

Listing 3 - Additional documents for the Albums collection

चित्र 10 - नए अतिरिक्त एल्बम दस्तावेज़

कोई विदेशी कुंजी प्रतिबंध नहीं

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

.deleteOne() गलत तरीके से दर्ज किए गए दस्तावेज़ों को हटाने के लिए कमांड का उपयोग किया जा सकता है:

db.Albums.deleteOne({ artist_name: "Skeered Tigon Stripes", album_name: "I Typed the Album Name Wrong" })
Listing 4 - Deleting a document.

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

चित्र 11 - कोई दस्तावेज़ हटाए नहीं दिखा रहा पुष्टि संदेश

.deleteMany() कमांड का उपयोग JSON मानदंड से मेल खाने वाले कई रिकॉर्ड को हटाने के लिए किया जा सकता है। नीचे दिया गया आदेश एल्बम संग्रह में सभी दस्तावेज़ हटा देता है जिसमें artist_name मान स्किरेड टिगॉन स्ट्राइप्स नहीं है :

db.Albums.deleteMany({artist_name: {$ne : "Skeered Tigon Stripes" }})

Listing 5 - Deleting multiple documents based on criteria.

चित्र 12 - अनेक रिकॉर्ड हटाना

MongoDB के साथ Python डेटाबेस प्रोग्रामिंग पर अंतिम विचार

अब जब हमने सीख लिया है कि MongoDB डेटाबेस से कैसे कनेक्ट किया जाए और "रिकॉर्ड्स" के साथ तालिका का NO SQL संस्करण कैसे बनाया जाए, तो हम अपने MongoDB डेटाबेस में डेटा डालने के लिए पायथन स्क्रिप्ट के साथ काम करना शुरू कर सकते हैं। हम उस चर्चा को इस पायथन डेटाबेस प्रोग्रामिंग ट्यूटोरियल के दूसरे और अंतिम भाग में जारी रखेंगे:पायथन और मोंगोडीबी डेटाबेस डेवलपमेंट।


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगो क्वेरी के आउटपुट को एक सीएसवी फ़ाइल में रीडायरेक्ट करें

  2. एडब्ल्यूएस प्रबंधन:अपने MongoDB होस्टिंग लागत पर 30% कैसे बचाएं

  3. MongoDB उपयोगकर्ता प्रबंधन का अवलोकन

  4. एक हाइब्रिड क्लाउड वातावरण में MongoDB की नकल करना

  5. स्प्रिंग बूट में मोंगो टाइमआउट सेट करें