Python MongoDB- query
Filter het resultaat
Wanneer u documenten in een verzameling zoekt, kunt u het resultaat filteren met behulp van een query-object.
Het eerste argument van de find()
methode is een query-object en wordt gebruikt om de zoekopdracht te beperken.
Voorbeeld
Zoek document(en) met het adres "Park Lane 38":
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)
Geavanceerde zoekopdracht
Om geavanceerde query's te maken, kunt u modifiers gebruiken als waarden in het query-object.
Om bijvoorbeeld de documenten te vinden waar het veld "adres" begint met de letter "S" of hoger (alfabetisch), gebruikt u de groter dan-modifier:
{"$gt": "S"}
:
Voorbeeld
Vind documenten waarvan het adres begint met de letter "S" of hoger:
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)
Filter met reguliere expressies
U kunt ook reguliere expressies als modifier gebruiken.
Reguliere expressies kunnen alleen worden gebruikt om strings op te vragen .
Om alleen de documenten te vinden waarvan het veld "adres" begint met de letter "S", gebruikt u de reguliere expressie {"$regex": "^S"}
:
Voorbeeld
Zoek documenten waarvan het adres begint met de letter "S":
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)