Python MongoDB Bul
MongoDB'de bir koleksiyondaki verileri bulmak için find ve findOne yöntemlerini kullanırız.
Tıpkı SELECT ifadesinin MySQL veritabanındaki bir tablodaki verileri bulmak için kullanılması gibi.
Birini Bul
MongoDB'deki bir koleksiyondan veri seçmek için
find_one()
yöntemi kullanabiliriz.
Yöntem find_one()
, seçimdeki ilk oluşumu döndürür.
Örnek
Müşteri koleksiyonundaki ilk belgeyi bulun:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
x = mycol.find_one()
print(x)
Hepsini bul
MongoDB'deki bir tablodan veri seçmek için de
find()
yöntemi kullanabiliriz.
Yöntem find()
, seçimdeki tüm oluşumları döndürür.
Yöntemin ilk parametresi find()
bir sorgu nesnesidir. Bu örnekte, koleksiyondaki tüm belgeleri seçen boş bir sorgu nesnesi kullanıyoruz.
find() yöntemindeki hiçbir parametre size MySQL'deki SELECT * ile aynı sonucu vermez.
Örnek
"Müşteriler" koleksiyonundaki tüm belgeleri iade edin ve her bir belgeyi yazdırın:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find():
print(x)
Yalnızca Bazı Alanları Döndür
Yöntemin ikinci parametresi find()
, sonuca hangi alanların dahil edileceğini açıklayan bir nesnedir.
Bu parametre isteğe bağlıdır ve atlanırsa tüm alanlar sonuca dahil edilir.
Örnek
_id'leri değil, yalnızca adları ve adresleri döndürün:
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)
Aynı nesnede hem 0 hem de 1 değerleri belirtmenize izin verilmez (alanlardan birinin _id alanı olması dışında). 0 değerine sahip bir alan belirtirseniz, diğer tüm alanlar 1 değerini alır ve bunun tersi de geçerlidir:
Örnek
Bu örnek, "adresi" sonuçtan hariç tutacaktır:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find({},{ "address": 0 }):
print(x)
Örnek
Aynı nesnede hem 0 hem de 1 değerleri belirtirseniz (alanlardan birinin _id alanı olması dışında) bir hata alırsınız:
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)