MongoDB
Python-Treiber
Suche…
Syntax
- mongodb: // [Benutzername: Kennwort @] Host1 [: Port1] [, Host2 [: Port2], ... [, HostN [: PortN]]] [/ [Datenbank] [? Optionen]]
Parameter
| Parameter | Detail |
|---|---|
| hostX | Wahlweise. Sie können beliebig viele Hosts angeben. Sie würden beispielsweise mehrere Hosts für Verbindungen zu Replikatsätzen angeben. |
| : portX | Wahlweise. Der Standardwert ist: 27017, falls nicht angegeben. |
| Datenbank | Wahlweise. Der Name der zu authentifizierenden Datenbank, wenn die Verbindungszeichenfolge Authentifizierungsinformationen enthält. Wenn / database nicht angegeben ist und die Verbindungszeichenfolge Berechtigungsnachweise enthält, authentifiziert sich der Treiber bei der Verwaltungsdatenbank. |
| ?Optionen | Verbindungsspezifische Optionen |
Verbinden Sie sich über Pymongo mit 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-Abfragen
Sobald Sie ein collection Objekt erhalten haben, verwenden Abfragen dieselbe Syntax wie in der Mongo-Shell. Einige geringfügige Unterschiede sind:
Jeder Schlüssel muss in Klammern stehen. Zum Beispiel:
db.find({frequencies: {$exists: true}})wird in
pymongo(beachten Sie dasTruein Großbuchstaben):db.find({"frequencies": { "$exists": True }})Objekte wie Objekt-IDs oder
ISODatewerden mit Python-KlassenISODate. PyMongo verwendet seine eigeneObjectIdKlasse, um mit Objekt-IDs zu arbeiten, während Datumsangaben das Standard-datetimePaket verwenden. Wenn Sie beispielsweise alle Ereignisse zwischen 2010 und 2011 abfragen möchten, können Sie Folgendes tun: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 } }):
Aktualisieren Sie alle Dokumente in einer Sammlung mit PyMongo
Angenommen, Sie müssen jedem Dokument in einer Sammlung ein Feld hinzufügen.
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)
Die find Methode gibt einen Cursor , auf dem Sie die for in Syntax verwenden können. Dann rufen wir die update , geben die _id und fügen ein Feld ( $set ) hinzu. Die Parameter upsert und multi stammen von Mongodb ( weitere Informationen finden Sie hier ).