MongoDB Nedir? Nasıl Kullanılır ? — Bölüm 1
MongoDB ile ilgili yazım 3 bölümden oluşacaktır.
1-) Genel Tanıtım ve Temel Sorgular
2-) Belge Ekleme(Insert) ve Sorgulama(Query) İşlemleri
3-) Belge Güncelleme(Update), Silme(Delete) İşlemleri ve Ek Methodlar
MongoDB nedir ?
MongoDB, yüksek hacimli verilerin depolanması için kullanılan, ihtiyaç duyulan sorgulama ve indeksleme ile istenilen esnekliğe sahip belge tabanlı(document-oriented) NoSQL veritabanıdır. MongoDB 2009 yılında geliştirilmiş ve açık kaynak kodludur.
MongoDB, geleneksel ilişkisel veritabanlarında olduğu gibi tablolar ve satırlar kullanmak yerine koleksiyonlar(Collections) ve belgelerden(Documents) yararlanır. Belgeler(Documents), anahtar(Key) — değer(Value) çiftlerinden oluşur. Koleksiyonlar, ilişkisel veritabanı tablolarına eşdeğerdir ve belgelerden(Documents) oluşur.
MongoDB Özellikleri
- Her veritabanı, sırayla belgeleri içeren koleksiyonları içerir. Her belge, değişen sayıda alanla farklı olabilir. Her belgenin boyutu ve içeriği birbirinden farklı olabilir.
- Belge yapısı, geliştiricilerin sınıfları ve nesneleri kendi programlama dillerinde nasıl inşa ettiklerine bağlıdır.
- Belgelerin önceden tanımlanmış bir şemaya sahip olmasına gerek yoktur.
- MongoDB’de bulunan veri modeli, hiyerarşik ilişkileri temsil etmenize, dizileri depolamanıza ve diğer daha karmaşık yapıları daha kolay bir şekilde göstermenize olanak tanır.
- Ölçeklenebilirlik — MongoDB ortamları oldukça ölçeklenebilir bir yapısı vardır.
- Bir belge kendi içinde ne kadar iç içe geçmiş olursa olsun, herhangi bir alana göre filtreleme ve sıralama yapmanıza olanak tanıyan zengin ve etkileyici sorgu dili vardır.
- Coğrafi tabanlı arama, grafik arama ve metin arama gibi modern kullanım durumlarını destek sağlamaktadır.
- Sorguların kendileri JSON’dur ve bu nedenle kolayca oluşturulabilir.
İndeksleme Özelliği
İndeksleme, MongoDB’nin yapılan sorgularda dökümanları baştan sona tamamının taramasını(table scan) engellemek için kullanılan bir özelliktir. İndeksleme olayını bir kitabın içindekiler bölümü gibi düşünebiliriz. Bir kitapta istenilen yeri bulmak için içindekiler alanına bakıp direkt ilgili sayfaya ulaşabiliriz. İndeksleme de buradaki içindekiler bölümü gibidir. MongoDB filtrelenecek veri için önce buraya bakar ve burada bulamaz ise koleksiyonların içinden arar bu yüzden index kullanımı sorgulamala, filtreleme gibi işlemlerde performansı çok etkilemektedir. Herhangi bir koleksiyon içindeki herhangi bir belgeye ait alan için index oluşturabilir. Fakat çok fazla index oluşturmak, sisteme yük yapmaktadır bu yüzden index seçilecek alanların iyi düşünülerek karar verilmesi gerekmektedir.
MongoDB Yükleme
MongoDB, günümüzde aktif olarak olarak kullanılan çoğu programlama dilini desteklemektedir ve bunun için kütüphaneleri mevcuttur. MongoDB’nin resmi sitesine girip bilgisayarınıza kurulumunu rahatça yapabilirsiniz. MongoDB’nin resmi sitesi gayet açıklayıcı ve net dökümanlara sahiptir. İncelemenizi tavsiye ederim.
MongoDB resmi web sitesi: https://www.mongodb.com
MongoDB yükleme sayfası: https://docs.mongodb.com/manual/installation/
MongoDB’yi bilgisayarınıza yükledikten sonra isterseniz komut ekranından veya MongoDB Compass gibi basit ve anlaşılır arayüze sahip programlar aracığıyla kullanabilirsiniz. MongoDB Compass gibi arayüzlerin çok fazla dökümanı internet ortamında mevcuttur onları araştırarak bulabilirsiniz, ben anlatıma komut penceresi üzerinden devam edeceğim.
MongoDB Temel İşlemler
MongoDB’yi eğer yüklediyseniz komut penceresine direk mongo yazarsanız aşağıdaki gibi bi ekran ile karşılaşmış olacaksınız ve burası MongoDB ile ilgili komutlara yazacağımız alandır.
Bazı temel komutlar aşağıdaki gibidir;
Veritabanlarını Görüntüle
show databases => Mevcut veritabanlarını listeler.
Yeni Veritabanı Oluştur
use db_name => Komut ekranında yeni veritabanı oluşturma işlemi genelinde biraz dışında kalıyor. Öncelikle use kelimesinden sonra veritabanın ismini giriyoruz. Daha sonra karşımıza ‘switched to db db_name’ ifadesi çıkıyor. Bu işlemden sonra tekrar ‘show databases’ dersek eklediğimiz veritabanını göremeyiz. Çünkü ilk veriyi eklediğimiz zaman veritabanı kendini oluşturacaktır.
Veritabanı Silme
use db_name
db.dropDatabase()
Hangi veritabanını sileceksek önce onu seçiyoruz ve daha sonra db.dropDatabase() dediğimizde resimdeki gibi bir cevap alıyorsak veritabanını başarıyla silmiş bulunmaktayız.
Mevcut Veritabanını Kullanma
use db_name => Var olan bir veritabanını kullanmak için bu komutu çalıştırmamız yeterlidir. Yeni veritabanı oluşturma işlemide aslında var olmayan bir veritabanı kullanıp sonra onu kaydetme anlamına gelmektedir.
Veritabanına Koleksiyon Ekleme
use db_name
db.createCollection(‘collection_name’) => Yeni koleksiyon eklemek için öncelikle veritabanını seçiyoruz ve bu komut giriyoruz Resimdeki gibi bir çıktı elde ediyorsak koleksiyon başarıyla eklenmiş demektir.
Mevcut Koleksiyonları Listeleme
use db_name
show collections => Mevcut koleksiyonların listesini döndürür.
Mevcut Koleksiyonları Silme
use db_name
db.collections_name.drop() => true cevabı gelirse eğe istenilen koleksiyon silmiş olur.
MongoDB için belgeler ile ilgili işlemlere kadar temel işlemler yukarıda anlatılmıştır. Belge işlemleri daha detaylı olduğu için bölüm-2 ve bölüm-3 kısmında anlatılacaktır.