कोर्स
क्या आप अपना MongoDB क्लस्टर अपने Python प्रोजेक्ट से जोड़ने के लिए तैयार हैं? आपके लिए अच्छी खबर है। इस ट्यूटोरियल में, आप जानेंगे कि PyMongo क्या है, यह MongoDB को डेटाबेस के रूप में इस्तेमाल करने वाले Python डेवलपर्स के लिए पसंदीदा पैकेज क्यों है, और अपनी पहली कनेक्शन को यथासंभव कुशलता से कैसे चालू करें।
यदि आप अभी शुरुआत कर रहे हैं, तो हमारा कोर्स ज़रूर देखें, Introduction to Using MongoDB for Data Science in Python.
PyMongo क्या है?
तो, आखिर PyMongo Python पैकेज क्या है? यह पैकेज MongoDB का आधिकारिक Python ड्राइवर है, जो डेवलपर्स को अपनी Python एप्लिकेशन और MongoDB डेटाबेस से कनेक्ट करने, क्वेरी करने और इंटरैक्ट करने की सुविधा देता है।
यह Python से अपने MongoDB डेटाबेस के साथ इंटरैक्ट करने का अनुशंसित तरीका है, और Flask तथा Django के साथ इसकी संगतता के कारण विभिन्न वेब एप्लिकेशन बनाने के लिए बेहतरीन है। यह सचमुच Python डेवलपर्स को अपनी विभिन्न एप्लिकेशनों में MongoDB का पूरा उपयोग करने में मदद करता है।
आइए एक सैंपल CRUD (create, read, update, delete) यूज़र एप्लिकेशन चलाकर देखें कि बहुत कम कोड में शुरुआत करना कितना आसान है!
सफलता के लिए आवश्यकताएँ
इस ट्यूटोरियल को सफलतापूर्वक फॉलो करने के लिए कृपया सुनिश्चित करें कि आपके पास ये पूर्वापेक्षाएँ हों:
- एक MongoDB Atlas खाता
- आपकी पसंद का IDE (इस ट्यूटोरियल में Google Colab नोटबुक का उपयोग किया गया है)
- Python 3.6+
pipइंस्टॉल हो (यदि आप Google Colab नोटबुक के अलावा कोई IDE इस्तेमाल कर रहे हैं)।
MongoDB क्लस्टर सेट अप करना
Python प्रोजेक्ट से MongoDB डेटाबेस को कनेक्ट करने से पहले, हमें एक क्लस्टर बनाना होगा! ऐसा करने के लिए, अपने MongoDB Atlas खाते में लॉग इन करें और यदि पहले से कोई प्रोजेक्ट नहीं है, तो एक नया प्रोजेक्ट बनाएं।
फिर, प्रोजेक्ट के भीतर एक क्लस्टर बनाएँ।

अब, आप अपना क्लस्टर डिप्लॉय करने के लिए तैयार हैं। “Free” टियर पर क्लिक करें (यह हमेशा के लिए फ्री है!) और अपने क्लस्टर के लिए एक नाम चुनें या डिफॉल्ट नाम रहने दें।
ध्यान रखें कि एक बार क्लस्टर का नाम चुन लेने के बाद, आप इसे बदल नहीं सकेंगे। क्लाउड प्रोवाइडर चुनें (AWS, Google Cloud और Azure में से) और सुनिश्चित करें कि आप सही रीजन में हैं।

हरे “Create Deployment” बटन पर क्लिक करें, और हम आगे बढ़ने के लिए तैयार हैं।
आपसे अपने क्लस्टर के लिए “Username” और “Password” चुनने के लिए कहा जाएगा। कृपया कुछ याद रखने योग्य (लेकिन इस ट्यूटोरियल जितना भी नहीं!) और सुरक्षित चुनें, क्योंकि हर बार Connection String एक्सेस करते समय इन विवरणों की ज़रूरत होगी।
कृपया “Preload sample dataset” बटन पर भी क्लिक करें ताकि आपके लिए चीज़ें आसान रहें। इससे अपने-आप “sample_mflix” सैंपल डेटा सेट लोड हो जाएगा, जिस पर हम काम करेंगे।
जारी रखने के लिए “Create Database User” पर क्लिक करें।

अब, आप अपने क्लस्टर से कनेक्ट कर सकते हैं! ऐसा करने के कई तरीके हैं, लेकिन चूंकि यह ट्यूटोरियल PyMongo पर केंद्रित है, हम Drivers के माध्यम से कनेक्ट करेंगे।

“Python” और अपनी इच्छित वर्ज़न चुनें (हम 4.7 या बाद का वर्ज़न चुनेंगे), और आपको अपना Connection String दिखाई देगा। आपकी सुविधा के लिए आपका यूज़रनेम और पासवर्ड अपने-आप भरा होगा।

अब जब आपके पास आपका Connection String है, तो कृपया इसे कहीं सुरक्षित रखें। हम हरे “Done” बटन को दबा सकते हैं।
कॉनफ़िगर होने के बाद आपका क्लस्टर ऐसा दिखेगा।
![कॉनफ़िगर होने के बाद क्लस्टर]](https://media.datacamp.com/cms/ad_4nxf2qowpihkjm1stvlc-ddf-wiee5pc64vmyac6z-hvxdhkucer83idgex9z73erlpem2bm4vgfq6sfqb8d5opoibgpxvlzlyenuri_fcicaw_7_6lrqpk9_djmzyjowquwtdndjzg.png)
कृपया स्क्रीन के बाएँ तरफ “Network Access” बटन पर जाएँ और सुनिश्चित करें कि आपका IP पता सही तरह से कॉन्फ़िगर है। इस ट्यूटोरियल के उद्देश्य से (हालाँकि प्रोडक्शन के लिए यह अनुशंसित नहीं है), सरलता के लिए आप अपने IP पते को “Access from Anywhere” पर सेट कर सकते हैं।
प्रोडक्शन चेतावनी: प्रोडक्शन-स्तरीय ऐप्स के लिए, Atlas में Network Access > IP Access List के तहत केवल विशिष्ट IPs को व्हाइटलिस्ट करें।
अब अपनी पसंद के IDE में चलें और हमारे पास मौजूद डेटा के साथ काम करें!
PyMongo के साथ कनेक्ट करना और CRUD ऑपरेशंस करना
हमारा पहला कदम pip का उपयोग करके pymongo इंस्टॉल करना है। हम इस चरण में getpass भी इंस्टॉल कर रहे हैं क्योंकि हम अपनी कनेक्शन को सुरक्षित रखना चाहते हैं:
!pip install pymongo
इसके बाद, अपने क्लस्टर के लिए MongoDB कनेक्शन सेट अप करें। हम अपनी कनेक्शन सुनिश्चित करने के लिए MongoClient का उपयोग करेंगे।
import getpass
from pymongo import MongoClient
# Get connection string from user
connection_string = getpass.getpass(prompt="Enter connection string WITH USER + PASS here: ")
try:
client = MongoClient(connection_string)
client.admin.command("ping")
print("Successfully connected")
except Exception as e:
print("Connection failed:", e)
अपने क्लस्टर में वापस जाकर हमारे डेटाबेस और कलेक्शन का नाम देखें। डेटाबेस का नाम sample_mflix और कलेक्शन का नाम users है।
यह इस सैंपल क्लस्टर में मौजूद जानकारी का उदाहरण है जिस पर हम काम कर रहे हैं। हमारे पास हर डॉक्युमेंट का ObjectId है, और हर यूज़र का नाम, ईमेल और पासवर्ड है।

आइए एक त्वरित परीक्षण चलाएँ ताकि सुनिश्चित हो सके कि हम अपने स्क्रिप्ट से डॉक्युमेंट पढ़ सकते हैं:
database = client["sample_mflix"]
collection = database["users"]
for document in collection.find().limit(20):
print(document)
सफलतापूर्वक चलने पर, आप यह देखेंगे:

नोट: sample_mflix डेटा सेट में प्रदर्शन उद्देश्यों के लिए प्लेनटेक्स्ट पासवर्ड शामिल हैं। वास्तविक एप्लिकेशनों में, हमेशा पासवर्ड हैश करें (जैसे bcrypt या Argon2 के साथ) और क्रेडेंशियल्स को हार्डकोड करने से बचें।
यह हमारे क्लस्टर में जानकारी पढ़ने का तरीका भी था! अब एक नया यूज़र बनाते हैं।
new_user = {
"name": "Anaiya Raisinghani",
"email": "fakeanaiya@gmail.com",
"password": "pleasedonothackme"
}
# insert the document
result = collection.insert_one(new_user)
print(result.inserted_id)
हम अपना नया यूज़र ID देख सकते हैं, और यदि मैं अपने क्लस्टर में वापस जाऊँ, तो मैं इस ID को खोजकर देख सकता/सकती हूँ कि मेरा नया यूज़र डॉक्युमेंट दिखता है या नहीं:

अब, उस डॉक्युमेंट को अपडेट करते हैं जिसे हमने अभी बनाया है।
नोट: BSON PyMongo के साथ इंस्टॉल आता है—अलग से इंस्टॉलेशन की ज़रूरत नहीं। ObjectId MongoDB का डिफॉल्ट यूनिक ID फ़ॉर्मेट है।
from bson import ObjectId
collection.update_one(
{"_id": result.inserted_id}, # using the same document that we inserted above
{"$set": {"password": "help!ivebeenhacked!!"}}
)

जैसा कि हम देख सकते हैं, पासवर्ड अपडेट हो गया है, और यह बदलाव हमारे MongoDB Atlas UI में दिख रहा है।
अब, इस डॉक्युमेंट को हटा देते हैं।
delete_user = collection.delete_one({"_id": result.inserted_id})
print("Deleted users:", delete_user.deleted_count)
डिलीट किए गए यूज़र्स “1” होंगे। चलिए अपने MongoDB Atlas UI में दोबारा जाँच लें (सुनिश्चित करने के लिए!).

हमने अपना डॉक्युमेंट सफलतापूर्वक डिलीट कर दिया है!
निष्कर्ष
इस ट्यूटोरियल में, हमने PyMongo—MongoDB के आधिकारिक Python ड्राइवर—के साथ आपके पहले 10 मिनट सफलतापूर्वक पूरे किए। हमने अपने कलेक्शन के डॉक्युमेंट पढ़े, एक नया यूज़र बनाया, उसे अपडेट किया, और उसे डिलीट किया!
PyMongo के बारे में अधिक जानकारी के लिए, कृपया कोर्स Introduction to Using MongoDB for Data Science in Python देखें और आधिकारिक डॉक्यूमेंटेशन पर जाएँ।
FAQs
PyMongo को MongoDB से जोड़ते समय कुछ सामान्य त्रुटियाँ क्या हैं?
आम समस्याओं में गलत कनेक्शन स्ट्रिंग, फ़ायरवॉल प्रतिबंध (IP व्हाइटलिस्ट), या ऑथेंटिकेशन विफलता शामिल हैं। यदि कनेक्शन फेल हो, तो अपने क्रेडेंशियल्स और नेटवर्क सेटिंग्स ध्यान से जाँचें।
क्या PyMongo असिंक्रोनस प्रोग्रामिंग को सपोर्ट करता है?
PyMongo स्वयं असिंक्रोनस ऑपरेशंस को नैटिव रूप से सपोर्ट नहीं करता। यदि आपको async क्षमता चाहिए, तो Motor का उपयोग करें, जो MongoDB का आधिकारिक असिंक्रोनस Python ड्राइवर है।
क्या PyMongo डेटाबेस ट्रांज़ैक्शन संभाल सकता है?
हाँ, PyMongo मल्टी-डॉक्युमेंट ACID ट्रांज़ैक्शन को सपोर्ट करता है, बशर्ते आप MongoDB replica sets या sharded clusters का उपयोग कर रहे हों। स्टैंडअलोन डिप्लॉयमेंट पर ट्रांज़ैक्शन उपलब्ध नहीं हैं।
मैं PyMongo कनेक्शन पूलिंग कैसे संभालूँ?
PyMongo पर्दे के पीछे अपने-आप कनेक्शन पूलिंग मैनेज करता है। आवश्यकता हो तो आप MongoClient सेटिंग्स के माध्यम से पूलिंग पैरामीटर्स (जैसे पूल साइज और टाइमआउट) कॉन्फ़िगर कर सकते हैं।
क्या मैं डेटा विश्लेषण कार्यों के लिए PyMongo को Pandas के साथ उपयोग कर सकता/सकती हूँ?
बिल्कुल! आप PyMongo की मदद से MongoDB डेटा आसानी से फ़ेच कर सकते हैं, फिर उसे सीधे Pandas DataFrames में लोड करके डेटा विश्लेषण और मैनिपुलेशन कर सकते हैं।

