Zapytanie MongoDB w Pythonie
Filtruj wynik
Podczas znajdowania dokumentów w kolekcji można filtrować wyniki przy użyciu obiektu zapytania.
Pierwszym argumentem find()
metody jest obiekt zapytania i służy do ograniczania wyszukiwania.
Przykład
Znajdź dokument(y) o adresie „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)
Zaawansowane zapytanie
Aby tworzyć zaawansowane zapytania, możesz użyć modyfikatorów jako wartości w obiekcie zapytania.
Np. aby znaleźć dokumenty, w których pole „adres” zaczyna się na literę „S” lub wyższą (alfabetycznie), użyj modyfikatora „większy niż”:
{"$gt": "S"}
:
Przykład
Znajdź dokumenty, których adres zaczyna się na literę „S” lub wyższą:
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)
Filtruj za pomocą wyrażeń regularnych
Możesz także użyć wyrażeń regularnych jako modyfikatora.
Wyrażeń regularnych można używać tylko do zapytań o ciągi znaków .
Aby znaleźć tylko te dokumenty, w których pole „adres” zaczyna się na literę „S”, użyj wyrażenia regularnego {"$regex": "^S"}
:
Przykład
Znajdź dokumenty, których adres zaczyna się na literę „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)