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 das True in Großbuchstaben):

    db.find({"frequencies": { "$exists": True }})
    
  • Objekte wie Objekt-IDs oder ISODate werden mit Python-Klassen ISODate . PyMongo verwendet seine eigene ObjectId Klasse, um mit Objekt-IDs zu arbeiten, während Datumsangaben das Standard- datetime Paket 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 ).



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow