2. MongoDb – CRUD işlemleri

MONGODB – CRUD İŞLEMLERİ

1.Create Metotları

1.a Koleksiyon yaratm

MongoDb üzerinde yeni bir collection yaratmak için aşağıdaki queryi kullanabiliriz.

      db.createCollection("kitap")
2.Insert Metotları

 2.a Insert işlemi

Yaratılan collectionun içerisine veri eklerken ise aşağıdaki sorgunun parametresine ekleyeceğimiz documenti Json olarak vermemiz yeterli olacaktır. Burada önemli nokta mongoDbnin verileri unstructrued olarak tutmasıdır. Bazı documentlerde bulunan fieldlar diğer documentlerde bulunmayabilir. Yani sizin veri eklerken uymanız gereken belli bir kalıp yoktur.

    db.kitap.insert(
    {
       kitapAdi:"Pyhton",
       sayfa:537,
       baski:3,
       isbn:"987-605-87588-7-2"
      }
    )

 2.b Değişkenler üzerinden Insert işlemi

MongoDbnin javascript desteği sayesinde aşağıdaki gibi bir yol da izleyebiliriz.

     var ad = "cagatay"
     var soyad="kiziltan"

     db.kitap.insert([ { kitapAdi: ad, sayfa: soyad} ] )

 2.c Çoklu Insert işlemi

Eğer istersek aynı anda çoklu insert de atabiliriz. Bunun için insert metoduna vereceğimiz json objesini json dizisi olarak vermek yeterli olacaktır.

     db.category.insert([
      {_id:1,name:"patlıcan"},
      {_id:2,name:"musakka"}, 
      {_id:3,name:"dolma"},
     ])
3.Update Metotları

 3.a Update işlemi

MongoDbde update kalıbı aşağıdaki gibidir

   db.category.update(
     {  //update edilecek veriyi bulacak koşul  },
     { //update edilecek degerler ve fieldlar}
   )

Update edilcek documanı bir property üzerinden aşağıdaki gibi yakalayıp update işlemini gerçekleştirebiliriz.

        – Aşağıdaki update var olan documanı alıp, onun yerine 2. bloktaki yepyeni dökümanla update eder.

    db.kitap.update(
       {_id:1},
       { kitapAdi:"yöresel yemekler"}
     )

– Aşağıdaki update dokumana hiç zarar vermeden ilgili propertyleri update eder.

    db.category.update(
       { name:"musakka" },
       { $set:{name:"sehriyeli tavuk corbasi",price:5} }
     )

Yukarıdaki kalıba bir ilave daha yapabilirz. 3. blok olarak da belli propertyler üzerinden settingler ekleyebiliriz. Örneğin aşağıdaki upsert propertysi kayıt varsa update et yoksa yarat anlamı taşırken, multi ise şarta uyan tüm kayıtların mı yoksa ilkinin mi update edileceğini ayarlar.

    db.kitap.update(
       {_id:1},
       { kitapAdi:"yöresel yemekler"},
       { upsert:true, multi:true}

     )

Bir alanın bir documentten silinmesini istiyorsak $unset keywordünü kullanmamız yeterlidir.

db.players.update(
   {_id:ObjectId("5cf31068afe3f209acfbaebc")},
   { $unset: {Soyad: "" }}
)
4.Delete Metotları
   db.category.remove(
     {  //silinecek veriyi bulacak koşul  },
     {  //silme işlemi için opsiyonlar }
   )

Kayıt silme işleminde de kalıp çok basittir. İlk blockta hangi kaydın silineceğine dair koşul, ikinci blockta da sorguya dair settingler verilir.

    db.category.remove(
      {_id:1},
      {justOne: true}

     )
   db.category.remove(
     {price:{$lt:5}},
     {justOne: true}
    )
    db.category.drop()

*** Kolesksiyonların durumu hakkında bilgi edinmek için de aşağıdaki sorguları kullanabiliriz.

   var collection = db.getCollection("yazar")
   collection.stats();