MongoDB Inc. tarafından C++ programlama dili kullanılarak 2009 yılında geliştirilmiş olan MongoDB, doküman tabanlı ve ölçeklenebilir bir uygulamadır.

MongoDB verileri JSON biçiminde doküman olarak veritabanında saklayan NoSQL tabanlı bir veritabanıdır diyebiliriz.

NoSQL nedir?

NoSql (Not Only SQL) temel olarak içinde SQL komutlarının kullanılmadığı veritabanı yapısıdır. İlişkisel veritabanlarına alternatif, ilişkisel olmayan, esnek yapılı, büyük verili ve çok sayıda aktif kullanıcılı sistemlerde yüksek performans ve yönetim kolaylığı sunan veritabanı çözümüdür.

MongoDB Özellikleri

  • Verileri belge olarak saklar. JSON verileri kullanılabilir. Veriler JSON olarak saklandığı için gelen verilerin yapısı değişse dahi kaydetme konusunda herhangi bir sıkıntı yaşamazsınız.
  • Verilerin birden fazla kopyasını saklayabilirsiniz. Böylelikle veri kaybının da önüne geçmiş olursunuz.
  • Veriler üzerinde index oluşturabilirsiniz. Böylelikle aradığınız tüm verilere hızlı ve kolay bir şekilde ulaşabilirsiniz.

MongoDB Nerelerde kullanılır?

MongoDB genel olarak hızın önemli olduğu gerçek zamanlı uygulamalar ve büyük verilerin olduğu uygulamalarda kullanılır diyebiliriz.

MongoDB Kurulumu için gerekli olan kurulum dosyalarına mongodb.com adresinden ulaşabilirsiniz.

MongoDB CRUD İşlemleri

MongoDB Veri Ekleme

db.ornekKoleksiyon.insert({ ad: “Veysel”, soyadi: “MUTLU” });

Toplu ekleme

db.ornekKoleksiyon.insert([
{ adi: “Veysel”, soyadi: “MUTLU” },
{ adi: “Veli”, soyadi: “MUTLU” } ]);

Eklenen verileri listelemek için find() metodu kullanılır.

Koleksiyon oluşturma

capped değeri true ise size ve max ile koleksiyon sınırı belirlenir.

db.createCollection(“ornekKoleksiyon”, { capped: true, size: 1024, max: 100 });

Veri listeleme

Çalıştırıldığında koleksiyonda yer alan tüm veriler listelemek için; db.ornekKoleksiyon.find();

Verileri anlaşılır bir şekilde listelemek için; db.ornekKoleksiyon.find().pretty();

Verilerin sayısını almak için;
db.ornekKoleksiyon.find().length();

Verileri belirli bir alana göre sıralamak için
db.ornekKoleksiyon.find().sort({ adi: 1 });

Verileri ters olarak sıralamak için;
db.ornekKoleksiyon.find().sort({ adi: -1 });

İlk veriyi almak için;
db.ornekKoleksiyon.findOne();

Veri içindeki bir alanı almak için;
db.ornekKoleksiyon.findOne().adi;

Alınan veri sayısına sınır koymak için;
db.ornekKoleksiyon.find().limit(3);

Bellirli bir kayıttan sonrasını listelemek için;
db.ornekKoleksiyon.find().skip(2);

Veri sorgulama

İstenilen sorgulamayı yapmak için find() (Örnek: find({adi:”Veysel”}))metodu içerisine JSON formatında sorgulanmak istenen alan adları yazdırılıp çalıştırılır.

Veri güncelleme

db.ornekKoleksiyon.update(kriteriniz, guncellenecekVeriniz);

Verilen alanları güncellemek için $set anahtar kelimesi kullanılır.
db.ornekKoleksiyon.update({ adi: “Veysel” }, { $set: { adi: “Veli” } });

Toplu güncelleme yapmak için;
db.ornekKoleksiyon.updateMany({ adi: “Veysel” }, { $set: { adi: “Veli” } });

Toplu güncelleme işlemini update metodu ile yapmak için;
db.ornekKoleksiyon.update({ adi: “Veysel” }, { $set: { adi: “Veli” } }, { multi: 1 });

Koleksiyon içinde sayısal verileri arttırmak için;
db.ornekKoleksiyon.updateMany({}, { $inc: { deger: 100 } });

Koleksiyon içindeki alan silmek için;
db.ornekKoleksiyon.updateMany({}, { $unset: { alan1: 1, alan2: 1 } });

Veri silme

db.ornekKoleksiyon.remove({ adi: “Veysel” }); -> Çalıştırıldığında koleksiyondaki adi Veysel olan tüm elemanlar silinecektir.

Herhangi bir kriter belirtmeden tüm kayıtları silmek için;
db.ornekKoleksiyon.remove({});

Sadece bir veri silinmek istendiğinde;
db.ornekKoleksiyon.remove({ adi: “Veysel” }, 1);

Koleksiyon silme

db.ornekKoleksiyon.drop();

Umarım güzel bir içerik olmuştur. İlgilenenlere faydalı olması dileğiyle…

Veysel MUTLU — Junior Software Developer

Github: github.com/vmutlu

Linkedln: linkedin.com/in/veysel-mutlu/

Junior Software Developer