Requête Python MongoDB
Filtrer le résultat
Lors de la recherche de documents dans une collection, vous pouvez filtrer le résultat à l'aide d'un objet de requête.
Le premier argument de la find()
méthode est un objet de requête et est utilisé pour limiter la recherche.
Exemple
Trouver le(s) document(s) avec l'adresse "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)
Requête avancée
Pour effectuer des requêtes avancées, vous pouvez utiliser des modificateurs comme valeurs dans l'objet de requête.
Par exemple, pour trouver les documents où le champ "adresse" commence par la lettre "S" ou plus (par ordre alphabétique), utilisez le modificateur supérieur à :
{"$gt": "S"}
:
Exemple
Rechercher des documents dont l'adresse commence par la lettre "S" ou plus :
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)
Filtrer avec des expressions régulières
Vous pouvez également utiliser des expressions régulières comme modificateur.
Les expressions régulières ne peuvent être utilisées que pour interroger des chaînes .
Pour rechercher uniquement les documents dont le champ "adresse" commence par la lettre "S", utilisez l'expression régulière {"$regex": "^S"}
:
Exemple
Rechercher des documents dont l'adresse commence par la lettre "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)