Interrogazione Python MongoDB
Filtra il risultato
Quando si trovano documenti in una raccolta, è possibile filtrare il risultato utilizzando un oggetto query.
Il primo argomento del find()
metodo è un oggetto query e viene utilizzato per limitare la ricerca.
Esempio
Trova i documenti con l'indirizzo "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)
Interrogazione avanzata
Per eseguire query avanzate è possibile utilizzare i modificatori come valori nell'oggetto query.
Ad esempio, per trovare i documenti in cui il campo "indirizzo" inizia con la lettera "S" o superiore (in ordine alfabetico), utilizzare il modificatore maggiore di:
{"$gt": "S"}
:
Esempio
Trova i documenti in cui l'indirizzo inizia con la lettera "S" o superiore:
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)
Filtra con espressioni regolari
Puoi anche usare le espressioni regolari come modificatore.
Le espressioni regolari possono essere utilizzate solo per interrogare le stringhe .
Per trovare solo i documenti in cui il campo "indirizzo" inizia con la lettera "S", utilizzare l'espressione regolare {"$regex": "^S"}
:
Esempio
Trova i documenti in cui l'indirizzo inizia con la lettera "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)