Python ile MongoDB Veritabanı İşlemleri, Python programlama dilini kullanarak MongoDB veritabanı işlemlerini öğrenmek isteyenler için ideal bir kaynak Bu rehberde, MongoDB verilerinin nasıl oluşturulacağı, güncelleneceği, okunacağı ve silineceği gibi temel işlemler detaylı şekilde anlatılmaktadır Kurumsal seviyede uygulamalar geliştirmek için gerekli olan veritabanı bilgilerini edinmek isteyenlerin mutlaka incelemesi gereken bir rehber!

Python programlama dili, son yıllarda adından sıklıkla söz ettiren ve kullanıcı sayısını arttıran bir dil olarak karşımıza çıkıyor. Bu yazılım dili pek çok alanda kullanılıyor ve birçok yazılım geliştirme işleminde kullanılabilir hale getiriliyor. Bunlardan biri de veritabanı işlemleridir.
Bu makalede, Python programlama dili kullanarak MongoDB veritabanı işlemlerinin nasıl yapılacağı adım adım anlatılacaktır. MongoDB, NoSQL tabanlı bir veritabanıdır ve pek çok avantajı beraberinde getirir. Ayrıca, Python programlama diliyle birlikte kullanıldığında oldukça güçlü bir birleşim elde edilir. Yukarıdaki alt başlıklarda veri ekleme, çekme ve güncelleme işlemleri ile ilgili detaylı bilgilere yer veriyoruz.
Veritabanı Oluşturma
MongoDB, verilerin düzenlenebilir bir şekilde saklanmasına ve erişilmesine izin veren bir NoSQL veritabanıdır. Bu makalede, Python programlama dili kullanarak MongoDB veritabanı işlemlerinin nasıl gerçekleştirileceğini öğrenme fırsatı bulabilirsiniz.
MongoDB veritabanı Python programlama dili kullanılarak oluşturulabilir. Veritabanı oluşturma işlemi "pymongo" kütüphanesi kullanılarak gerçekleştirilebilir. İlk adım olarak, "pymongo" kütüphanesini yüklemek için aşağıdaki kod satırını kullanabilirsiniz:
```python pip install pymongo```Yukarıdaki kod satırı, "pymongo" kütüphanesinin yüklenmesini sağlayacak ve MongoDB veritabanı işlemleri için gerekli olan tüm modülleri içerecektir. Veritabanı oluşturma işlemi için aşağıdaki kod parçasını kullanabilirsiniz:
```python import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["example_db"]```Yukarıdaki kod, "example_db" adlı bir veritabanı oluşturacaktır. Veritabanı adını dilediğiniz gibi değiştirebilirsiniz.
Böylece, MongoDB veritabanı oluşturma işlemi tamamlanmış olacaktır. Veritabanına erişim yolu "mongodb://localhost:27017/" olarak belirlenir. Eğer başka bir IP adresine bağlanmak isterseniz, "localhost" değerini bu IP adresiyle değiştirmeniz gerekmektedir.
Veri Ekleme ve Çekme
Python programlama dili ile MongoDB veritabanına veri ekleme ve çekme işlemleri oldukça kolay ve hızlı bir şekilde gerçekleştirilebilir. MongoDB veritabanına kayıt eklemek için, verilerin JSON formatında olması yeterlidir. Bu sebeple Python ile MongoDB kullanarak veri ekleme işlemi oldukça basittir.
Python kodları kullanarak MongoDB veritabanından veri çekme işlemi de oldukça kolaydır. Verileri belirli aralıklar veya koşullar dahilinde almak için kullanışlı sorgu yapısı sayesinde, istenilen veriler anlık olarak alınabilir.
Veri ekleme işlemi için, "insert_one()" ve "insert_many()" fonksiyonları kullanılabilir. Tek bir kayıt eklemek için "insert_one()" fonksiyonu kullanılırken, toplu şekilde veri eklemek için "insert_many()" fonksiyonu kullanılabilir. Bu fonksiyonların yanı sıra, "update_one()" ve "update_many()" fonksiyonları kullanılarak var olan verilerde güncelleme işlemi yapılabilir.
MongoDB veritabanından veri çekmek için, "find()" fonksiyonu kullanılır. Bu fonksiyon, belirli koşullar veya aralıklar dahilinde veri çekme işlemi yapabilmektedir. Verileri sıralamak veya filtrelemek için "sort()" ve "filter()" fonksiyonları kullanılarak, istenen veriler daha hızlı bir şekilde alınabilir.
Veri Ekleme
MongoDB veritabanı oluşturma işlemi tamamlandıysa, sıradaki adım veri ekleme işlemidir. Python programlama dili ile MongoDB veritabanına veri ekleme işlemleri oldukça kolaydır. İlk olarak, pymongo kütüphanesini kullanarak bağlantı sağlamamız gerekmektedir.
import pymongomyclient = pymongo.MongoClient("mongodb://localhost:27017/")mydb = myclient["database"]mycol = mydb["collection"]
Yukarıdaki kod bloğunda myclient, pymongo kütüphanesi aracılığıyla veritabanına bağlanır. Bu kodda "localhost" ana bilgisayar ismini ve "27017" port numarasını kullanarak veritabanına bağlanırız. mydb veritabanına, mycol ise bu veritabanına ait koleksiyonlara işaret eder.
Veri eklemek için kullanacağımız metot insert_one() veya insert_many() metotları olacaktır. Tek bir kayıt eklemek için insert_one() metodu, toplu kayıt eklemek için insert_many() metodu kullanabiliriz. Örnek veri eklemek için ise şu kodları kullanabiliriz:
mydict = { "name": "John", "address": "Highway 37" }x = mycol.insert_one(mydict)
Yukarıdaki örnekte, mydict sözlük yapısı kullanılarak veri ekleniyore. insert_one() metodu herhangi bir hata olmadığı sürece bir ObjectId nesnesi döndürür. Bu ObjectId nesnesi veritabanındaki verinin benzersiz tanımlayıcısıdır.
Birden fazla kayıt eklemek için insert_many() metodu kullanılabilir. Bu metodun kullanımı tek kayıt ekleme metoduna benzer ancak şöyle bir farklılık vardır:
mylist = [ { "name": "Amy", "address": "Apple st 652"}, { "name": "Hannah", "address": "Mountain 21"}, { "name": "Michael", "address": "Valley 345"}, { "name": "Sandy", "address": "Ocean blvd 2"}, { "name": "Betty", "address": "Green Grass 1"}, { "name": "Richard", "address": "Sky st 331"}, { "name": "Susan", "address": "One way 98"}, { "name": "Vicky", "address": "Yellow Garden 2"}, { "name": "Ben", "address": "Park Lane 38"}, { "name": "William", "address": "Central st 954"}, { "name": "Chuck", "address": "Main Road 989"}, { "name": "Viola", "address": "Sideway 1633"}]x = mycol.insert_many(mylist)print(x.inserted_ids)
Yukarıdaki örnekte, mylist adında bir liste yapıtlması oluşturulmuş ve bu liste içerisindeki elemanlar veritabanına eklenmek istenmiştir. insert_many() metodu sayesinde tüm kayıtlar topluca veritabanına eklenmiştir. insert_many() metodu, işlemi tamamladıktan sonra her bir kaydın ObjectId'sini döndürür.
Tek Kayıt Ekleme
MongoDB veritabanına tek bir kayıt eklemek oldukça kolaydır. İlk olarak "pymongo" kütüphanesini kullanarak Python programlama dili üzerinden MongoDB veritabanına bağlanmalıyız. Daha sonra, "insert_one()" fonksiyonu kullanılarak kayıt ekleyebiliriz.
Öncelikle, "pymongo" kütüphanesini projemize dahil etmeliyiz:
import pymongo
Ardından, MongoDB veritabanımıza bağlanmalıyız. Bunun için, MongoClient sınıfını kullanabiliriz. Aşağıdaki kodda "localhost" ve "27017" parametreleri, MongoDB'ye bağlanmak için kullanılan IP adresi ve port numarasını temsil eder.
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
Bağlantıyı gerçekleştirdikten sonra, veritabanımızı ve koleksiyonumuzu seçmeliyiz. Örneğin, "test" isimli bir veritabanı oluşturduğumuzu ve içinde "students" adında bir koleksiyonumuz olduğunu varsayalım:
mydb = myclient["test"]mycol = mydb["students"]
Ardından, "insert_one()" fonksiyonu kullanarak verimizi ekleyebiliriz. Örneğin, aşağıdaki kodda "name" ve "age" adında iki alanı olan bir kayıt ekleniyor:
mydict = { "name": "John", "age": 25 }x = mycol.insert_one(mydict)
Yukarıdaki kodda, "insert_one()" fonksiyonu ile "mydict" adlı sözlük oluşturup, bu kaydı "mycol" koleksiyonuna ekledik. Eklenen kaydın ID'sini almak için ise "inserted_id" özelliğini kullanabiliriz:
print(x.inserted_id)
Bu şekilde, MongoDB veritabanı üzerinde Python kodları kullanılarak tek bir kayıt eklemeyi başarabiliriz.
Toplu Kayıt Ekleme
MongoDB veritabanına toplu şekilde kayıt eklemek için Python programlama dili kullanılabilir. Veritabanında bulunan bütün verileri tek seferde ekleyebiliriz. Bunun için kullanacağımız veri yapısı, JSON formatına uygun olmalıdır. Toplu kayıt ekleme işlemi, "insert_many()" fonksiyonu ile gerçekleştirilecektir.
Öncelikle, kaydedilecek verilerin bulunduğu bir JSON dosyası oluşturulmalıdır. Ardından, Python programlama dilinde bir dictionary veri yapısı kullanarak bu verilerin okunması sağlanabilir. Daha sonra, "insert_many()" fonksiyonuna dictionary içindeki veriler gönderilerek kayıtlar veritabanına eklenir.
Örneğin, aşağıdaki Python kodu ile "kitaplar" koleksiyonuna 5 adet kayıt toplu şekilde ekleyebiliriz.
```pythonfrom pymongo import MongoClientimport json
# MongoDB Bağlantısıclient = MongoClient('mongodb://localhost:27017/')
# Veritabanı Oluşturmadb = client['kitaplar']
# JSON dosyasından verileri okumawith open('kitaplar.json') as f: data = json.load(f)
# Toplu Kayıt Ekleme İşlemidb.kitaplar.insert_many(data)```
Bu şekilde, MongoDB veritabanına toplu kayıt ekleme işlemi gerçekleştirilmiştir. İlgili koleksiyon içindeki kayıtlar, "find()" fonksiyonu ile görüntülenebilir.
Veri Çekme
Veri çekme işlemi, MongoDB veritabanı üzerinden yapılabilecek en temel işlemler arasında yer almaktadır. Python programlama dili kullanılarak veri tabanından veri çekme işlemi oldukça basit bir şekilde gerçekleştirilebilir.
MongoDB, NoSQL tabanlı bir veritabanı olduğu için veri alışverişi işlemleri JSON formatında gerçekleştirilmektedir. Bu nedenle, veri çekme işlemi gerçekleştirirken JSON diliyle tanışık olmak oldukça önemlidir.
Veri çekme sırasında, belirli bir tablodaki verilerin tamamını ya da belirli sorgulara göre seçilen verileri almak mümkündür. Bunun için Python kodları kullanarak MongoDB veritabanına sorgulama atılması gerekmektedir.
Belirli alanlardaki verileri çekmek için kullanılacak komutlar, daha önceden belirlenmiş bir yapıya sahiptir. Bu nedenle, belirli bir alanı sorgulamayı öğrenmek oldukça kolaydır. MongoDB veritabanındaki tüm verileri seçmek için kullanılacak komutlar ise oldukça farklılık gösterir.
Veri çekme sırasında, kullanıcı aynı zamanda verileri formatlama, filtreleme ve sıralama işlemlerini de yapabilir. Böylece istenilen verilere daha kolay bir şekilde erişim sağlanabilir.
Sonuç olarak, MongoDB veritabanından veri çekme işlemi oldukça kolay bir işlem olmakla birlikte, veritabanını ve Python programlama dilini iyi tanımak gerekmektedir. Bu sayede, dilediğiniz alanlardaki verilere kolay bir şekilde erişim sağlayabilir ve verilerle istediğiniz gibi işlemler yapabilirsiniz.
Belirli Alanlardaki Verileri Çekme
Belirli bir alandaki verileri seçmek, MongoDB veritabanlarından veri çekme işleminin ayrılmaz bir parçasıdır. Python programlama dili ile bu işlem oldukça kolaydır. Belirli alanlardaki verileri seçmek için kullanacağımız işlemler $projection ve $slice olacaktır.
$projection işlemi, belirli alanlardaki verileri seçmek için kullanılır. Bu işlem ile belirli alanlar seçilip, diğer alanlar görmezden gelinir. Aşağıdaki örnek kodda, "name" alanındaki veriler seçilirken, "age" alanı görmezden gelinmiştir:
Python Kodları |
---|
import pymongo |
client = pymongo.MongoClient("mongodb://localhost:27017/") |
db = client["mydatabase"] |
collection = db["customers"] |
for x in collection.find({}, {"name": 1, "age": 0}): |
print(x) |
$slice işlemi ile de belirli bir alandaki verilerin bir kısmını seçebiliriz. Bu işlem, dizilerdeki elemanlar arasından belirli bir aralığı seçmek için kullanılır. Örneğin aşağıdaki örnek kodda, "contacts" alanında 2. ve 3. elemanlar seçilir:
Python Kodları |
---|
import pymongo |
client = pymongo.MongoClient("mongodb://localhost:27017/") |
db = client["mydatabase"] |
collection = db["customers"] |
for x in collection.find({}, {"_id": 0, "name": 1, "contacts": {"$slice": [1, 2]}}): |
print(x) |
Bu şekilde, belirli alanlardaki verileri seçerek, Python programlama dili ile MongoDB veritabanlarından veri çekmek oldukça kolaydır.
Tüm Verileri Çekme
MongoDB veritabanındaki tüm verileri seçmek için Python programlama dili ile sorgulama yapmak oldukça kolaydır. Tüm verileri seçmek için find() metodu kullanılır. Bu metot kullanılarak veriler, belirli bir koşula göre filtrelenmeden seçilebilir.
Aşağıdaki kod örneği, veritabanından tüm verileri seçmek için kullanabileceğiniz basit bir sorgudur:
from pymongo import MongoClient# MongoDB bağlantısı oluşturmaclient = MongoClient('localhost', 27017)# Veritabanı seçimidb = client['mydatabase']# Collection seçimicollection = db['mycollection']# Tüm verileri seçmek için find() metodu kullanmaresult = collection.find()# Sonuçları ekrana yazdırmafor data in result: print(data)
Bu örnekte, MongoClient sınıfı kullanılarak MongoDB veritabanına bağlanılmıştır. Ardından, veritabanı ve collection seçilmiştir.
Tüm verileri seçmek için find() metodu kullanılmış ve sonuçlar döngü yardımıyla ekrana yazdırılmıştır. Bu sorgu, veritabanındaki tüm verilerin seçilmesini sağlar.
Belirli bir koşula göre filtreleme yapmak için ise, find() metoduna filtreleme koşulu eklenmelidir. Örneğin, collection.find({"name": "John"}) gibi bir sorgu, "name" alanı "John" olan tüm verileri seçer.
Toplu veri çekme işlemleri, büyük ölçekli projelerde oldukça önemlidir. Bu nedenle, MongoDB gibi popüler bir veritabanı için tüm verileri çekmek konusunda bilgi sahibi olmak oldukça önemlidir.
Veri Güncelleme
Python programlama dili ile MongoDB veritabanında bulunan verileri güncelleme işlemleri oldukça kolay bir şekilde gerçekleştirilebilir. Bu başlık altında veritabanındaki verileri güncelleme işlemlerine dair bilgiler verilecektir.
MongoDB veritabanında bulunan tek bir kaydı güncellemek için, update_one() fonksiyonu kullanılabilir. Bu fonksiyon, veritabanında belirlenen bir kaydı güncellemek için kullanılır ve aşağıdaki şekilde kullanılır:
mycol.update_one({ "name": "John" }, { "$set": { "name": "Jane" } })
Yukarıdaki kod örneğinde, "name" alanı "John" olan kaydın "name" alanı "Jane" olarak güncellenmektedir.
Veritabanındaki tüm kayıtları güncellemek için, update_many() fonksiyonu kullanılabilir. Bu fonksiyon, veritabanındaki belirlenen tüm kayıtları güncellemek için kullanılır ve aşağıdaki şekilde kullanılır:
x = mycol.update_many({ "address": { "$regex": "^S" } }, { "$set": { "name": "Minnie" } })print(x.modified_count, "documents updated.")
Yukarıdaki kod örneğinde, "address" alanı "S" ile başlayan tüm kayıtların "name" alanı "Minnie" olarak güncellenmektedir.
Veritabanındaki verileri güncellemek için bu yöntemler kullanılabilir. Güncelleme işlemleri, veriler üzerinde yapılan değişiklikleri kolay bir şekilde yapmanızı sağlar.
Tek Kayıt Güncelleme
MongoDB veritabanındaki tek bir kaydı güncellemeniz gerekiyorsa, bunu Python kodları kullanarak kolaylıkla yapabilirsiniz. İşlem adımlarını sırayla takip ederek, tek kayıt güncelleme işlemini gerçekleştirebilirsiniz.
İlk olarak, güncellemek istediğiniz kaydın bulunduğu koleksiyonu seçmeniz gerekiyor. Bunun için şu kodu kullanabilirsiniz:
db = client["veritabaniismi"] collection = db["koleksiyonismi"]
Bu kodda, "veritabaniismi" ve "koleksiyonismi" yerine kendi projenizdeki veritabanı ve koleksiyon isimlerinizi kullanmalısınız.
Sonrasında, güncellemek istediğiniz kaydı seçmeniz gerekiyor. Bunun için, filtreleme işlemlerini kullanabilirsiniz. Örneğin:
myquery = { "name": "Ahmet" } newvalues = { "$set": { "name": "Mehmet" } } collection.update_one(myquery, newvalues)
Bu kodda, "name" alanı "Ahmet" olan kaydı seçtik ve "name" alanını "Mehmet" olarak güncelledik.
update_one() fonksiyonu ise, seçtiğimiz kaydın sadece bir kez güncellenmesini sağlar. Eğer tüm kayıtları güncellemek isterseniz update_many() fonksiyonunu kullanabilirsiniz.
Güncelleme işlemi başarılı bir şekilde gerçekleştiyse, fonksiyon size kaç kaydın güncellendiğini döndürecektir. Eğer kayıt bulunamazsa, fonksiyon herhangi bir değişiklik yapmayacak ve size bir uyarı mesajı döndürecektir.
Yukarıdaki kodlarda, güncelleme işlemleri için kullanılan "$set" anahtar kelimesi, MongoDB'de güncelleme işlemini belirtmek için kullanılır.
Bu şekilde, tek kayıt güncelleme işlemi de Python kodları kullanarak kolaylıkla gerçekleştirilebilir.
Toplu Kayıt Güncelleme
MongoDB veritabanında bulunan tüm kayıtların toplu şekilde güncellenmesi, Python programlama dili ile oldukça basittir. Bunun için, "update_many()" fonksiyonu kullanılabilir. Bu fonksiyon, belirtilen koşulları sağlayan tüm kayıtların güncellenmesini sağlar.
Örneğin, aşağıdaki Python kod parçası ile MongoDB veritabanındaki "students" koleksiyonundaki tüm "name" alanlarının içerisinde bulunan "John" değerleri "Jonathan" ile değiştirilebilir;
Alan Adı | Değerler |
---|---|
name | John |
name | John |
name | John |
name | John |
import pymongomyclient = pymongo.MongoClient("mongodb://localhost:27017/")mydb = myclient["mydatabase"]mycol = mydb["students"]myquery = { "name": "John" }newvalues = { "$set": { "name": "Jonathan" } }x = mycol.update_many(myquery, newvalues)print(x.modified_count, "kayıt güncellendi")
Yukarıdaki kodlar sayesinde, "students" koleksiyonundaki "name" alanlarında "John" değerleri "Jonathan" ile değiştirilecektir.
Bununla birlikte, toplu güncelleme işlemi yaparken verilerin yedeklenmesi önerilir. Böylece, herhangi bir hata durumunda orijinal veriler kurtarılabilecektir.