MongoDB CRUD İşlemleri

Merhaba arkadaşlar,
Bugünkü yazımız, MongoDB‘de CRUD işlemleriyle ilgili olacaktır.
Öncelikle bilmeyenler için CRUD ne demek ondan bahsetmek istiyorum. Programlama dünyasında, verilerle yapılacak 4 temel işlemin baş harflerinden oluşan bir sözcüktür. Bu dört işlem Create, Read, Update ve Delete‘dir.
Sırasıyla bunlara bir göz atalım.

Create İşlemi

Insert() Metodu

CRUD operasyonlarındaki Create işleminden kasıt mevcut collectionlar içerisinde olmayan bir dokümanı eklemek anlamındadır. Bunun için de Insert() metodu kullanılır.
Syntax;

db.collection.insert(<document>);

Örnek;

db.mycollection.insert( { "Ad":"HASAN", "Soyad":"TATARLI", "Gorev":"DBA" } );

Bu örnek üzerinde açıklamamız gereken bazı noktalar vardır.

  • Eğer veritabanı üzerinde belirtmiş olduğunuz collection adına ait bir collection yoksa ilk önce bu collection create edilir sonrasında insert işlemi gerçekleştirilir.
  • Eğer eklenecek doküman içerisinde _id parametresi değer olarak belirtilmemişse, MongoDB bu döküman için 12 byte değerinde tekil bir hexadecimal sayı oluşturup ObjectID olarak bu dökümana atar. 12 byte şu şekilde bölünür. (4 byte timestamp, 3 byte makine id, 2 byte process id, 3 byte incrementer)

CRUD işlemleri için, MongoDB 3.2 Versiyonu ile gelen 2’şer adet daha metot daha mevcuttur.
Bunları da her operasyon içerisinde değinmiş olacağız.

  • insertOne()
  • insertMany()

Bu metotların adından da anlaşılacağı gibi tek bir kayıt veya birden fazla kayıt insert etmek için kullanılır.

Örnek kullanım;

  • insertOne()
db.mycollection.insertOne( { "Ad":"HASAN", "Soyad":"TATARLI", "Gorev":"DBA" } );
  • insertMany()
 
db.mycollection.insertMany( { 
[ { "Ad":"HASAN","Soyad":"TATARLI", "Gorev":"DBA"}, 
  { "Ad":"MELİH","Soyad":"TATARLI","Gorev":"Öğrenci"} ] } );

Read İşlemi

MongoDB de bir collectiondaki verileri görebilmek, sorgulayabilmek için find() metodu kullanılır.

Syntax;

db.mycollection.find()

Fakat eğer dökümanının çok fazla kolon içerisiyorsa bunu find() metoduyla okumak çok zor olabilir. Bunun için formatlanmış bir şekilde görmek için pretty() metodu kullanılır.

db.mycollection.find().pretty()

Sadece bir veriyi görmek için de findOne() metodu vardır.

Her zaman bir collection’a ait bütün verileri çekmemiz söz konusu değildir, bazen bir kolonun bir veri eşit olduğu veya farklı kriterlerde olduğu şekilde de sorgulamamız gerekir. (İlişkisel veritabanlarındaki where kriteri gibi)

İşlem Örnek
= db.mycollection.find({“like”:100}).pretty()
< db.mycollection.find({“like”:{$lt:100}}).pretty()
<= db.mycollection.find({“like”:{$lte:100}}).pretty()
> db.mycollection.find({“like”:{$gt:100}}).pretty()
>= db.mycollection.find({“like”:{$gte:100}}).pretty()
!= db.mycollection.find({“like”:{$ne:100}}).pretty()

Bu örneklerin haricinde ilişkisel veritabanlarında kullandığımız gibi birden fazla kriteri aynı anda kullanmak gerekebilir. İlişkisel veritabanlarında bu işlemler için AND/OR kullanabiliriz. Bu kullanım şekilleri MongoDB’de şu şekildedir.

Syntax;

db.mycollection.find(
 {
 $and/$or:[
           {kolon1:değer1},{kolon2:değer2}
          ]
 }).pretty()
  • AND Kullanımı
    db.mycollection.find( { $and:[{"likes":100},{"title":"Insert Example"}]}).pretty()
  • OR Kullanımı
    db.mycollection.find( { $or:[{"likes":100},{"title":"Insert Example"}]}).pretty()
  • AND ve OR birlikte Kullanımı
    db.mycollection.find({"likes":{$gte:100}}, $or:[{"title":"Insert Example"},{"by":"Hasan TATARLI"}]) 

 

Update İşlemi

Update() metodu bir colletiondaki var olan kayıtları güncellemek için kullanılır.

Syntax;

db.mycollection.update({"adi":"Hasan"},{$set:{"Gorev":"Database Administrator"}}) 

Yine insert() metodunda olduğu gibi  update() metodunda da 3.2 versiyonuyla yeni metotlar eklenmiştir.

  • db.mycollection.updateOne()
    updateOne() kullanımı update() metoduyla aynıdır.
  • db.mycollection.updateMany()
    db.mycollection.updateMany(
     { "likes":{$gt: 100 }},
     { $set: {"title": "updateMany Example"}}
     )
    
  • db.mycollection.replaceOne()
    db.mycollection.replaceOne({"adi":"Hasan"},{"adi":"Hasan","Gorev":"Database Administrator"})
    

Replace metodunda eğer adi = “Hasan” şeklinde bir kayıt bulursa bu kayda ait Gorev kolonunu verilen kriterlere göre değiştirir. Eğer bulamazsa 0 kayıt bulundu ve update edildi bilgisi gösterilir.

Delete() Metodu

Son metodumuz delete() metodudur. Delete metodu da bir collectiondan dokümanı silmek için kullanılır.

Syntax;

 db.mycollection.delete(Delete_Criteria)

Örnek;

 db.mycollection.delete({"_id": ObjectId("563237a41a4d68582c2509da") })

Delete işlemi içinde diğer metotlarda olduğu gibi 2 özellik vardır.

  • deleteOne()
    deleteOne ve delete() fonksiyonunun kullanımı aynıdır.
  • deleteMany()
     db.mycollection.deleteMany({"likes":{$gt : 100}})
    

MongoDB’de CRUD işlemlerini temel olarak bahsetmeye çalıştım. Daha detaylı bilgiye ulaşmak için MongoDB’nin dokümanlarını inceleyebilirsiniz. Sormak istediklerinizi yorum kısmından istediğiniz zaman sorabilirisiniz.

Umarım faydalı olmuştur.

Leave a Reply