Python MongoDB- navraag
Filter die resultaat
Wanneer jy dokumente in 'n versameling vind, kan jy die resultaat filter deur 'n navraagobjek te gebruik.
Die eerste argument van die find()
metode is 'n navraagobjek, en word gebruik om die soektog te beperk.
Voorbeeld
Soek dokument(e) met die 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)
Gevorderde navraag
Om gevorderde navrae te maak, kan jy wysigers as waardes in die navraagobjek gebruik.
Bv. om die dokumente te vind waar die "adres"-veld met die letter "S" of hoër (alfabeties) begin, gebruik die groter as wysiger:
{"$gt": "S"}
:
Voorbeeld
Soek dokumente waar die adres met die letter "S" of hoër begin:
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 Gereelde Uitdrukkings
Jy kan ook gereelde uitdrukkings as 'n wysiger gebruik.
Gereelde uitdrukkings kan slegs gebruik word om stringe te bevraagteken .
Om slegs die dokumente te vind waar die "adres"-veld met die letter "S" begin, gebruik die gewone uitdrukking {"$regex": "^S"}
:
Voorbeeld
Soek dokumente waar die adres met die letter "S" begin:
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)