Temel Kullanım

Bu bölümde MongoDB'ye nasıl bağlanılacağı ve temel veritabanı/koleksiyon işlemlerinin (veri ekleme, sorgulama, güncelleme, silme vb.) nasıl yapılacağı anlatılacaktır.

Bağlantı Kurma (mongosh)

MongoDB ile etkileşim kurmak için modern komut satırı aracı mongosh'tur (eski araç mongo idi).

  • Yerel Sunucuya Bağlanma: Eğer MongoDB sunucusu yerelde çalışıyorsa ve kimlik doğrulama kapalıysa, doğrudan mongosh komutu ile bağlanabilirsiniz:

    mongosh

    Bu komut varsayılan olarak mongodb://127.0.0.1:27017 adresine bağlanır ve test veritabanını kullanır.

  • Belirli Bir Sunucuya ve Porta Bağlanma: Farklı bir sunucuya veya porta bağlanmak için bağlantı dizesi (connection string) kullanılır:

    mongosh "mongodb://sunucu_adresi:port"
  • Kimlik Doğrulama ile Bağlanma: Eğer kimlik doğrulama (security.authorization: enabled) aktifse, kullanıcı adı, parola ve kimlik doğrulama veritabanını belirtmeniz gerekir:

    mongosh "mongodb://kullanici_adi:parola@sunucu_adresi:port/?authSource=admin"

    Not: authSource genellikle kullanıcıların tanımlandığı veritabanıdır (çoğunlukla admin).

Temel mongosh Komutları

mongosh kabuğu içindeyken JavaScript benzeri bir sözdizimi ve özel komutlar kullanılır.

  • Veritabanlarını Listeleme:

    show dbs
  • Mevcut Veritabanını Gösterme:

    db
  • Veritabanı Değiştirme/Oluşturma: Olmayan bir veritabanı adı kullanıldığında, içine ilk veri eklendiği anda otomatik olarak oluşturulur.

    use yeni_veritabani
  • Koleksiyonları (Collections) Listeleme:

    show collections
  • Yardım:

    help
  • Çıkış:

    exit
    // veya
    quit()

Temel Veri İşlemleri (CRUD)

MongoDB'de veriler BSON (Binary JSON) formatında dökümanlar olarak saklanır ve bu dökümanlar koleksiyonlar içinde gruplanır.

  • Veri Ekleme (Create):insertOne() (tek döküman) veya insertMany() (çoklu döküman) kullanılır.

    // 'urunler' adında bir koleksiyona tek bir döküman ekleme
    db.urunler.insertOne({ adi: "Laptop", fiyat: 1500, kategori: "Elektronik" })
    
    // Birden fazla döküman ekleme
    db.urunler.insertMany([
      { adi: "Klavye", fiyat: 75, kategori: "Aksesuar" },
      { adi: "Monitor", fiyat: 300, kategori: "Elektronik" }
    ])

    Eğer urunler koleksiyonu yoksa, ilk ekleme işleminde otomatik olarak oluşturulur.

  • Veri Okuma (Read):find() (tüm eşleşenleri bulur) veya findOne() (ilk eşleşeni bulur) kullanılır. Filtreleme için sorgu dökümanları kullanılır.

    // 'urunler' koleksiyonundaki tüm dökümanları bulma
    db.urunler.find()
    
    // Kategori'si "Elektronik" olan ürünleri bulma
    db.urunler.find({ kategori: "Elektronik" })
    
    // Fiyatı 100'den büyük olan ürünleri bulma ($gt: greater than)
    db.urunler.find({ fiyat: { $gt: 100 } })
    
    // Sadece ilk eşleşen elektronik ürünü bulma
    db.urunler.findOne({ kategori: "Elektronik" })

    find() sonucu bir imleç (cursor) döndürür. Tüm sonuçları görmek için genellikle .pretty() metodu eklenir: db.urunler.find().pretty()

  • Veri Güncelleme (Update):updateOne() (ilk eşleşeni günceller) veya updateMany() (tüm eşleşenleri günceller) kullanılır. İlk argüman filtre, ikinci argüman güncelleme operatörlerini içeren dökümandır ($set, $inc vb.).

    // 'Laptop' ürününün fiyatını güncelleme
    db.urunler.updateOne(
      { adi: "Laptop" },
      { $set: { fiyat: 1450, stok: 10 } } // fiyat'ı değiştir, stok alanını ekle
    )
    
    // Tüm Aksesuar kategorisindeki ürünlerin fiyatını %10 artırma ($mul: multiply)
    db.urunler.updateMany(
      { kategori: "Aksesuar" },
      { $mul: { fiyat: 1.10 } }
    )
  • Veri Silme (Delete):deleteOne() (ilk eşleşeni siler) veya deleteMany() (tüm eşleşenleri siler) kullanılır. Argüman olarak filtre dökümanı alır.

    // 'Klavye' ürününü silme
    db.urunler.deleteOne({ adi: "Klavye" })
    
    // Fiyatı 300'den düşük olan tüm ürünleri silme ($lt: less than)
    db.urunler.deleteMany({ fiyat: { $lt: 300 } })

Last updated