Python - NoSQL Veritabanları
Yapılandırılmamış veya yarı yapılandırılmış olarak gittikçe daha fazla veri kullanılabilir hale geldikçe, bunları NoSql veritabanı aracılığıyla yönetme ihtiyacı artar. Python, İlişkisel veritabanları ile etkileşimde olduğu gibi, NoSQL veritabanlarıyla da benzer şekilde etkileşim kurabilir. Bu bölümde MongoDB ile NoSQL veritabanı olarak etkileşim kurmak için python kullanacağız. MongoDB'de yeniyseniz, buradaki eğitimimizde öğrenebilirsiniz .
MongoDB'ye bağlanmak için python, şu adıyla bilinen bir kitaplık kullanır: pymongo. Anaconda ortamından aşağıdaki komutu kullanarak bu kitaplığı python ortamınıza ekleyebilirsiniz.
conda install pymongo
Bu kütüphane python'un bir db istemcisi kullanarak MOngoDB'ye bağlanmasını sağlar. Bağlandıktan sonra, çeşitli işlemler için kullanılacak db adını seçiyoruz.
Veri Ekleme
MongoDB'ye veri eklemek için veritabanı ortamında bulunan insert () yöntemini kullanıyoruz. Önce aşağıda gösterilen python kodunu kullanarak db'ye bağlanıyoruz ve ardından belge ayrıntılarını bir dizi anahtar-değer çifti biçiminde sağlıyoruz.
# Import the python libraries
from pymongo import MongoClient
from pprint import pprint
# Choose the appropriate client
client = MongoClient()
# Connect to the test db
db=client.test
# Use the employee collection
employee = db.employee
employee_details = {
'Name': 'Raj Kumar',
'Address': 'Sears Streer, NZ',
'Age': '42'
}
# Use the insert method
result = employee.insert_one(employee_details)
# Query for the inserted document.
Queryresult = employee.find_one({'Age': '42'})
pprint(Queryresult)
Yukarıdaki kodu çalıştırdığımızda aşağıdaki sonucu verir.
{u'Address': u'Sears Streer, NZ',
u'Age': u'42',
u'Name': u'Raj Kumar',
u'_id': ObjectId('5adc5a9f84e7cd3940399f93')}
Verileri Güncelleme
Mevcut bir MongoDB verilerini güncellemek, eklemeye benzer. MongoDB'ye özgü olan update () yöntemini kullanıyoruz. Aşağıdaki kodda mevcut kaydı yeni anahtar-değer çiftleriyle değiştiriyoruz. Lütfen hangi kaydın güncelleneceğine karar vermek için koşul kriterlerini nasıl kullandığımıza dikkat edin.
# Import the python libraries
from pymongo import MongoClient
from pprint import pprint
# Choose the appropriate client
client = MongoClient()
# Connect to db
db=client.test
employee = db.employee
# Use the condition to choose the record
# and use the update method
db.employee.update_one(
{"Age":'42'},
{
"$set": {
"Name":"Srinidhi",
"Age":'35',
"Address":"New Omsk, WC"
}
}
)
Queryresult = employee.find_one({'Age':'35'})
pprint(Queryresult)
Yukarıdaki kodu çalıştırdığımızda aşağıdaki sonucu verir.
{u'Address': u'New Omsk, WC',
u'Age': u'35',
u'Name': u'Srinidhi',
u'_id': ObjectId('5adc5a9f84e7cd3940399f93')}
Verileri Silme
Bir kaydı silmek, silme yöntemini kullandığımız durumlarda da basittir. Burada ayrıca silinecek kaydı seçmek için kullanılan koşula da değiniyoruz.
# Import the python libraries
from pymongo import MongoClient
from pprint import pprint
# Choose the appropriate client
client = MongoClient()
# Connect to db
db=client.test
employee = db.employee
# Use the condition to choose the record
# and use the delete method
db.employee.delete_one({"Age":'35'})
Queryresult = employee.find_one({'Age':'35'})
pprint(Queryresult)
Yukarıdaki kodu çalıştırdığımızda aşağıdaki sonucu verir.
None
Dolayısıyla, belirli bir kaydın artık db'de bulunmadığını görüyoruz.