Dotaz Python MongoDB
Filtrujte výsledek
Při hledání dokumentů v kolekci můžete výsledek filtrovat pomocí objektu dotazu.
První argument find()
metody je objekt dotazu a používá se k omezení vyhledávání.
Příklad
Najděte dokumenty s adresou "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)
Pokročilý dotaz
Chcete-li provádět pokročilé dotazy, můžete použít modifikátory jako hodnoty v objektu dotazu.
Např. pro vyhledání dokumentů, kde pole "adresa" začíná písmenem "S" nebo vyšším (abecedně), použijte modifikátor větší než:
{"$gt": "S"}
:
Příklad
Najděte dokumenty, jejichž adresa začíná písmenem „S“ nebo vyšším:
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)
Filtr s regulárními výrazy
Jako modifikátor můžete také použít regulární výrazy.
Regulární výrazy lze použít pouze k dotazování řetězců .
Chcete-li najít pouze dokumenty, kde pole „adresa“ začíná písmenem „S“, použijte regulární výraz {"$regex": "^S"}
:
Příklad
Najděte dokumenty, jejichž adresa začíná písmenem „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)