Python MongoDB Znajdź
W MongoDB używamy metod find i findOne do wyszukiwania danych w kolekcji.
Podobnie jak instrukcja SELECT służy do wyszukiwania danych w tabeli w bazie danych MySQL.
Znajdź jeden
Aby wybrać dane z kolekcji w MongoDB, możemy skorzystać z
find_one()
metody.
Metoda find_one()
zwraca pierwsze wystąpienie w zaznaczeniu.
Przykład
Znajdź pierwszy dokument w kolekcji klientów:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
x = mycol.find_one()
print(x)
Znajdź wszystko
Aby wybrać dane z tabeli w MongoDB, możemy również skorzystać z
find()
metody.
Metoda find()
zwraca wszystkie wystąpienia w zaznaczeniu.
Pierwszym parametrem find()
metody jest obiekt zapytania. W tym przykładzie używamy pustego obiektu zapytania, który wybiera wszystkie dokumenty w kolekcji.
Brak parametrów w metodzie find() daje taki sam wynik jak SELECT * w MySQL.
Przykład
Zwróć wszystkie dokumenty z kolekcji „klienci” i wydrukuj każdy dokument:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find():
print(x)
Zwróć tylko niektóre pola
Drugim parametrem find()
metody jest obiekt opisujący, jakie pola należy uwzględnić w wyniku.
Ten parametr jest opcjonalny, a jeśli zostanie pominięty, wszystkie pola zostaną uwzględnione w wyniku.
Przykład
Zwróć tylko nazwiska i adresy, a nie identyfikatory _id:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find({},{ "_id": 0, "name": 1, "address": 1 }):
print(x)
Nie możesz określić zarówno wartości 0, jak i 1 w tym samym obiekcie (z wyjątkiem sytuacji, gdy jedno z pól jest polem _id). Jeśli określisz pole z wartością 0, wszystkie inne pola otrzymają wartość 1 i na odwrót:
Przykład
Ten przykład wykluczy „adres” z wyniku:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find({},{ "address": 0 }):
print(x)
Przykład
Otrzymasz błąd, jeśli określisz zarówno wartości 0, jak i 1 w tym samym obiekcie (z wyjątkiem sytuacji, gdy jedno z pól jest polem _id):
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find({},{ "name": 1, "address": 0 }):
print(x)