Python ile MongoDB Bağlantısı ve Veri Okuma/Yazma İşlemleri

By | 6 October 2015

Bir önceki yazımda bunu Php ile yapmıştık, bu sefer Python2.7 ile bu işler nasıl oluyor, onu göstereceğim. Senaryomuz aynı olacak. Öncelikle, Python ile MongoDB’ye bağlanmak için  ‘pymongo’ modülünü kurmamız gerekiyor.

sudo pip install pymongo

Screen Shot 2015-10-06 at 11.26.06 AM

Modülü başarılı bir şekilde kurduktan sonra kodlarımızı yazmaya başlayabiliriz. İlk olarak MongoDB bağlantısını gerçekleştiriyoruz.

# -*-coding: utf:8 -*-
from pymongo import MongoClient
client = MongoClient('mongodb://localhost:27019')
print 'Başarılı bir şekilde bağlantı kuruldu.'

Screen Shot 2015-10-06 at 11.31.35 AM

Bağlantımız sorunsuz kuruldu ve artık işlemlerimize başlayabiliriz.

client = MongoClient('mongodb://localhost:27017')
db = client.local
collection = db.mertblog //eğer collection yoksa, insert işleminde kendisi yaratıyor

document = {'domain' : 'mertblog', 'uzantı' : 'net'}
collection.insert(document)

Burada dikkat etmemiz gereken, eğer collection yoksa, insert işleminde kendi oluşturuyor. MongoDB’nin default portu ‘27017’ kullandık, sizin ayarlarınıza göre değişebilir bu. Ayrıca document içinde json oluşturduk. ‘collection.insert(document)’ diyerek de insert işlemini gerçekleştirmiş olduk. Şimdi sonuçları görelim.

Screen Shot 2015-10-06 at 2.15.26 PM

Bir de komut satırında python dosyamızı çalıştıralım ve bakalım. Bunun için ‘find()’ fonksiyonu ve ‘for’ kullanacağız.

websites = collection.find()
for website in websites:
print '%s.%s' % (website['domain'], website['uzanti'])

Screen Shot 2015-10-06 at 2.25.59 PM

Sonradan eklediğim ‘google.com’ ile ‘youtube.com’ da başarılı bir şekilde görebiliyoruz.Şimdi ‘google.com’ ismini ‘yandex.com’ ile değiştirelim, bunun için ‘update’ fonksiyonunu kullanacağım.

collection.update({'domain' : 'google'}, {'$set' : {'domain' : 'yandex'}})
websites = collection.find()
for website in websites:
print '%s.%s' % (website['domain'], website['uzanti'])

Python uzantılı programımızı çalıştıralım ve istediğimiz olmuş mu, bakalım.

python-mongo-update

Ve evet istediğimiz olmuş işte bu kadar basit. Şimdi de o satırı veritabanından silelim. Bunun için ‘delete_many()’ fonksiyonundan faydalanacağız. Eğer bu kayıttan birden fazla varsa, hepsini siler. Bir de ‘delete_one()’ fonksiyonumuz var. Bu ise sadece ilk bulduğu kayıtı siler.

collection.delete_many({'domain' : 'yandex'})
websites = collection.find()
for websites in website:
print '%s.%s' % (website['domain'], website['uzanti'])

Kodlarımız istediğimizi yapmak için yeterli, şimdi kodumuzu çalıştıralım.

Screen Shot 2015-10-06 at 2.59.02 PM

Görüldüğü gibi istediğimiz olmuş. Python ile MongoDB bağlantısı ve veri okuma/yazma/silme işlemleri bu şekilde gerçekleştiriliyor. Bir daha ki yazımızda görüşmek üzere… 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *

*