Python-MongoDB- Abfrage
Filtern Sie das Ergebnis
Beim Suchen von Dokumenten in einer Sammlung können Sie das Ergebnis filtern, indem Sie ein Abfrageobjekt verwenden.
Das erste Argument der find()
Methode ist ein Abfrageobjekt und wird verwendet, um die Suche einzuschränken.
Beispiel
Dokument(e) mit der Adresse "Park Lane 38" finden:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
myquery = { "address": "Park Lane 38" }
mydoc = mycol.find(myquery)
for x in mydoc:
print(x)
Erweiterte Abfrage
Um erweiterte Abfragen zu erstellen, können Sie Modifikatoren als Werte im Abfrageobjekt verwenden.
Um beispielsweise die Dokumente zu finden, bei denen das Feld "Adresse" mit dem Buchstaben "S" oder höher (alphabetisch) beginnt, verwenden Sie den Modifikator "Größer als":
{"$gt": "S"}
:
Beispiel
Finden Sie Dokumente, deren Adresse mit dem Buchstaben "S" oder höher beginnt:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
myquery = { "address": { "$gt": "S" } }
mydoc = mycol.find(myquery)
for x in mydoc:
print(x)
Filtern mit regulären Ausdrücken
Sie können auch reguläre Ausdrücke als Modifikator verwenden.
Reguläre Ausdrücke können nur zum Abfragen von Zeichenfolgen verwendet werden .
Um nur die Dokumente zu finden, bei denen das Feld „Adresse“ mit dem Buchstaben „S“ beginnt, verwenden Sie den regulären Ausdruck {"$regex": "^S"}
:
Beispiel
Finden Sie Dokumente, bei denen die Adresse mit dem Buchstaben "S" beginnt:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
myquery = { "address": { "$regex": "^S" } }
mydoc = mycol.find(myquery)
for x in mydoc:
print(x)