- Bağlantıyı al
- X
- E-posta
- Diğer Uygulamalar
- Bağlantıyı al
- X
- E-posta
- Diğer Uygulamalar
MongoDB'deki koleksiyonlar, ilişkisel veritabanlarındaki tablolara karşılık gelir. Verilerinizi kategorize etmek için kullanılırlar.
Bir önceki konuda veritabanlarının ilk veri eklendiğinde otomatik oluştuğunu görmüştük. Koleksiyonlar için de aynı mantık geçerlidir: İlk belge eklendiğinde koleksiyon otomatik olarak oluşturulur.
Bu, MongoDB'nin en sık kullanılan ve en esnek koleksiyon oluşturma yoludur.
Veritabanı nesneniz (db) üzerinden,
istediğiniz koleksiyon adına Python sözlük erişimi yaparak
koleksiyon nesnesine erişim sağlarsınız.
# db = client['proje_veri']# 'kitaplar' adında bir koleksiyona erişimkitaplar_col = db['kitaplar']
Unutmayın: MongoDB'de bir koleksiyon, içerik alana kadar oluşturulmaz, bu nedenle ilk defa koleksiyon oluşturuyorsanız, koleksiyonun var olup olmadığını kontrol etmeden önce bir sonraki bölümü (belge oluşturma) tamamlamalısınız!
print(db.list_collection_names())
sonuç: [ ] boş olacaktır.
MongoDB bir Belge Tabanlı (Document-Oriented) veritabanı olduğu
için, kayıtlarımız Python'daki sözlükler (dict)
gibi yapılandırılır. PyMongo, bu sözlükleri doğrudan
veritabanına kaydetmemizi sağlar.
Belge eklemek için iki ana PyMongo metodu kullanılır:
insert_one(): Tek bir
belge eklemek için.
insert_many(): Birden
fazla belgeyi tek bir işlemde eklemek için.
Bu örnekler için, daha önce oluşturduğumuz kitaplar
koleksiyonunu kullanmaya devam edeceğiz.
Öncelikle bağlantımızı kuralım ve koleksiyonumuza erişelim:
from pymongo import MongoClient
# 1. Bağlantı kur
client =
MongoClient('mongodb://localhost:27017/')
# 2. 'proje_db' veritabanına erişim
db =
client['proje_veri']
# 3. 'kitaplar' koleksiyonuna erişim (Eğer yoksa otomatik
oluşturulur)
kitaplar_col = db['kitaplar']
insert_one)insert_one() metodu, koleksiyona tek
bir Python sözlüğü ekler ve bize ekleme işlemi hakkında bilgi
veren bir InsertOneResult nesnesi
döndürür.
tekil_kitap = {
"isim": "Python Programlama Sanatı",
"yazar": "Ahmet Bilgin",
"yayinevi": "Yazılım Kitapları A.Ş.",
"yil": 2024,
"stok": 50
}
# Belgeyi ekle
sonuc = kitaplar_col.insert_one(tekil_kitap)
# Ekleme sonucunu kontrol etme
print("--- Tek Belge Ekleme ---")
print(f"Ekleme Başarılı! Otomatik Oluşturulan ID:
{sonuc.inserted_id}")
Önemli Bilgi: Eğer sözlüğünüzde bir _id
alanı belirtmezseniz, MongoDB otomatik olarak benzersiz bir _id
alanı oluşturur ve ekler. Bu, o belgenin birincil anahtarıdır.
insert_many)Bir uygulama genellikle birden fazla kaydı aynı anda
veritabanına kaydetme ihtiyacı duyar. Bu işlem için insert_many()
metodu kullanılır. Bu metod, Python sözlüklerinden oluşan bir
liste bekler.
yeni_kitaplar = [
{
"isim": "MongoDB ile Hız Testleri",
"yazar": "Deniz Kara",
"yayinevi": "Veri Merkezi Yayınları",
"yil": 2023,
"stok": 10
},
{
"isim": "JavaScript Temelleri",
"yazar": "Ece Sönmez",
"yayinevi": "Yazılım Kitapları A.Ş.",
"yil": 2022,
"stok": 85
}
# Belge listesini ekle
sonuc_coklu =
kitaplar_col.insert_many(yeni_kitaplar)
# Ekleme sonucunu kontrol etme
print("\n--- Çoklu Belge
Ekleme ---")
print(f"Ekleme Başarılı! Toplam
{len(sonuc_coklu.inserted_ids)} belge eklendi.")
print(f"Oluşturulan
ID'ler: {sonuc_coklu.inserted_ids}")
insert_many() metodunda ordered=False
parametresini kullanarak, bir hata durumunda bile diğer belgelerin
eklenmeye devam etmesini sağlayabilirsiniz. Varsayılan olarak
(ordered=True), bir hata oluşursa tüm
işlem durdurulur.
kitaplar_col.insert_many(yeni_kitaplar, ordered=False)
Yorumlar
Yorum Gönder