MongoDB
अजगर चालक
खोज…
वाक्य - विन्यास
- MongoDB: // [उपयोगकर्ता नाम: पासवर्ड @] host1 [: port1] [, host2 [: port2], ... [, जिसे hostn [: portN]]] [? / [डेटाबेस] [विकल्प]]
पैरामीटर
| पैरामीटर | विस्तार |
|---|---|
| hostX | वैकल्पिक। आप आवश्यक के रूप में कई मेजबानों को निर्दिष्ट कर सकते हैं। आप कई मेजबानों को निर्दिष्ट करेंगे, उदाहरण के लिए, प्रतिकृति सेट के कनेक्शन के लिए। |
| : portX | वैकल्पिक। डिफ़ॉल्ट मान है: 27017 यदि निर्दिष्ट नहीं है। |
| डेटाबेस | वैकल्पिक। डेटाबेस का नाम प्रमाणित करने के लिए यदि कनेक्शन स्ट्रिंग में प्रमाणीकरण क्रेडेंशियल शामिल हैं। |
| ? विकल्प | कनेक्शन विशिष्ट विकल्प |
Pymongo का उपयोग करके MongoDB से कनेक्ट करें
from pymongo import MongoClient
uri = "mongodb://localhost:27017/"
client = MongoClient(uri)
db = client['test_db']
# or
# db = client.test_db
# collection = db['test_collection']
# or
collection = db.test_collection
collection.save({"hello":"world"})
print collection.find_one()
PyMongo क्वेरीज़
एक बार जब आपको एक collection ऑब्जेक्ट मिल जाता है, तो प्रश्न उसी सिंटैक्स का उपयोग करते हैं जैसे कि मूंग शेल में। कुछ मामूली अंतर हैं:
हर कुंजी को कोष्ठक में संलग्न किया जाना चाहिए। उदाहरण के लिए:
db.find({frequencies: {$exists: true}})pymongoमें हो जाता है (नोट अपरकेस मेंTrueहै):db.find({"frequencies": { "$exists": True }})ऑब्जेक्ट
ISODateयाISODateजैसी वस्तुओं को पायथन कक्षाओं का उपयोग करके हेरफेर किया जाता है। PyMongo ऑब्जेक्ट आईडी से निपटने के लिए अपने स्वयं केObjectIdवर्ग का उपयोग करता है, जबकि दिनांक मानकdatetimeपैकेज का उपयोग करते हैं। उदाहरण के लिए, यदि आप 2010 और 2011 के बीच की सभी घटनाओं की क्वेरी करना चाहते हैं, तो आप कर सकते हैं:from datetime import datetime date_from = datetime(2010, 1, 1) date_to = datetime(2011, 1, 1) db.find({ "date": { "$gte": date_from, "$lt": date_to } }):
PyMongo का उपयोग करके एक संग्रह में सभी दस्तावेजों को अपडेट करें
मान लीजिए कि आपको किसी संग्रह में प्रत्येक दस्तावेज़ में फ़ील्ड जोड़ने की आवश्यकता है।
import pymongo
client = pymongo.MongoClient('localhost', 27017)
db = client.mydb.mycollection
for doc in db.find():
db.update(
{'_id': doc['_id']},
{'$set': {'newField': 10} }, upsert=False, multi=False)
find विधि एक Cursor लौटाता है, जिस पर आप सिंटैक्स for in उपयोग के for in आसानी से पुनरावृति कर सकते हैं। फिर, हम update विधि को कॉल करते हैं, _id निर्दिष्ट करते हैं और हम एक फ़ील्ड ( $set ) जोड़ते हैं। पैरामीटर upsert और multi मोंगोडब से आते हैं ( अधिक जानकारी के लिए यहां देखें )।