MongoDB Nedir?
MongoDB, cross-platform, açık kaynaklı ve döküman tabanlı bir database yönetim sistemidir. Bir NoSQL database türüdür. Döküman tabanlı dedim çünkü bünyesinde ilişkisel bir tablo yapısı barındırmaz. Kullandığı data yapısı JSON’a çok benzer olmasına karşın BSON adı verilen bir data yapısını kullanır. BSON, Binary JSON manasına gelir.
MongoDB Özellikleri
- Kullanımı ücretsizdir.
- Döküman odaklı: MongoDB, NoSQL bir veritabanı olduğundan dolayı verileri döküman formatında saklar. Bu durum herhangi bir standart veri formatına bağımlı olmamasından dolayı esneklik ve kolaylık sağlar.
- Sorgulama esnekliği: Bir alana (field) göre, belli aralıklara göre veya regular expression (regex) kullanılarak arama yapılabilmesine olanak tanır. Yapılan aramalarda sadece istenilen field’ların döndürülebilmesi sağlanabilir.
- Indexleme: Database sistemlerinde kuşkusuz performans noktasında en önemli sayılabilecek noktalardan biri indexleme özelliğidir. Bu özellik sayesinde daha hızlı sorgu sonuçları alınabilir. MongoDB’de, istenilen herhangi bir field’a göre indexleme yapılabilmektedir.
- Replikasyon: Replika setleriyle birden fazla MongoDB instance’ı oluşturmaya izin vererek yüksek kullanılabilirlik sağlar.
- Load balancing:Birden fazla MongoDB instance’ı arasında yatay ölçekleme yapabildiği için herhangi bir donanım arızası olduğunda aktif olan instance üzerinden çalışabilir.
Programlama dili bağımsız diyebileceğimiz nitelikle resmi olarak 10+ dilde sürücüsü bulunuyor. Ayrıca topluluğun katkılarıyla daha fazlası geliştirilmekte.
Şimdi gelin kısa bir başlangıç yaparak, MongoDB’nin kullanımının ne kadar kolay olduğuna bakalım.
Öncelik hali hazırda çalışan bir MongoDB sunucumuz olması gerekiyor. Yok ise kendi lokalimizde bir sunucu başlatabiliriz. Lokal bir MongoDB sunucusu kurmak için şu adımları izleyebilirsiniz.
MongoDB Sunucusu Oluşturma
Öncelikle MongoDB yükleme adımlarının tamamını Install MongoDB sayfasından bulabileceğinizi söyleyeyim. Ben size burada Windows için kısa kurulum adımlarından bahsedeceğim.
- Öncelikle MongoDB Community Server bağlantısnı kullanarak MSI paketini indirip kurulumu tamamlayın. Varsayılan olarak
C:\Program Files\MongoDB
adresine kurulumu yapacaktır. - Database dosyalarının konumunu belirlemek için bir klasör oluşturun. Ben
C:
sürücüsü içerisinemongodata\db
klasörü oluşturdum. - Sonrasında CMD üzerinde aşağıdaki şekilde mongod prosesini çalıştırarak sunucuyu ayağa kaldırmış olacağız.
Eğer ekranda döküm şeklinde bilgiler geldiyse, içerisinde error veya exception şeklinde bir ibare yoksa, bu adımı da başarıyla tamamlamış ve lokal MongoDB sunucusunu aktif hale getirmişiz demektir. Şimdi bu sunucuyu nasıl kullanacağımıza bakalım.
MongoDB Nasıl Kullanılır?
Uygulamamızı Node.js kullanarak yapacağız, eğer bu konuda bilginiz yoksa daha önce anlattığım Node.js Projesi Oluşturma yazıma bakabilirsiniz.
Driver olarak bir çok alternatif var lakin bu örneğimizde resmi driver olan npm üzerindeki mongodb paketini kullanalım.
Aşağıdaki şekilde mongodb paketini node.js projemize ekleyerek başlayabiliriz.
Bu işlem sonrası javascript dosyası üzerinde bu paketi kullanabiliriz. Şimdi aşağıdaki kodları bir dosyaya yazalım. Ben index.js
dosyası oluşturarak içerisine ekledim.
Burada mongodb server adresi olarak lokali gösterdim. Lokale kurulum yapıldığında varsayılan olarak bu IP ve portta sunucu çalıştırılmaktadır.
Database adı olarak istediğim bir isim verdim. Buradaki nokta eğer bu isimde bir database varsa onu kullanacak, eğer yoksa yeni bir database oluşturacaktır.
Aşağıdaki komutla konsol üzerinden index.js
dosyasını çalıştırıyorum.
Eğer konsol ekranında “Bağlantı başarıyla kuruldu” ibaresini görüyorsak sorunsuz olarak database’e bağlandık demektir. Sonraki aşamada insert/update/delete işlemlerini yapalım.
Fazla kod kalabalığı olmaması için önce ekleme/güncelleme/silme ve arama fonksiyonlarını yazalım. Sonrasında kullanımlarına göz atabiliriz.
Ekleme İşlemi / Insert
Döküman ekleme işlemleri için aşağıdaki şekilde bir insert fonksiyonu oluşturalım.
Güncelleme İşlemi / Update
Döküman güncellemek için aşağıdaki update fonksiyonu kullanılabilir. Id alanı 1 olan kullanıcının yas fieldını güncellemeye çalışıyoruz.
Silme İşlemi / Delete
Döküman silme işlemini aşağıdaki şekilde deleteOne metoduyla yapıyoruz. Biz bu örnekte Id değeri 2 olan kaydı silmeye çalışıyoruz.
Arama İşlemi / Search
MongoDB’de arama işlemini find metoduyla yapıyoruz. Biz aşağıdaki örnekte çok fazla kaydımız olmadığı için tümünü listeledik.
Şimdi gelin bu CRUD (Create, Read, Update, Delete) fonksiyonlarını, yazının en başında gördüğümüz connection kodlarıyla birleştirelim. Öncelikle MongoDB connection’ı kuracağız ve sonrasında CRUD işlemlerini yapacağız.
Fonksiyon kullanımlarını aşağıdaki şekilde yapabiliriz. Yaptığımız iş connect
metodu üzerinden bize gelen client
objesi ile db
‘ye ulaşmak. Sonrasında bu db objesini CRUD metodlarına ileterek ilgili kodları çalıştırmaktır.
Yukarıdaki örnekte sadece ekleme işlemi yapılmaktadır. Şimdi gelin tüm metodları birleştirerek hepsini çalıştırma yöntemine bakalım. Aslında aynı kodları tekrar tekrar buraya yazmak istemesem de, kod bloğunun çalışır durumda olması benim için önemli.
Aşağıda index.js
dosyasının son halini görebilirsiniz. Node.js dosyalarını çalıştırdığımız gibi bu dosyayı da konsola şunu yazarak çalıştırabilirsiniz. node index.js
Bu örneklerle beraber Node.js üzerinde MongoDB nasıl kullanılır bunu öğrenmiş olduk. Normal şartlarda Mongo shell üzerinde konsol penceresinden de bu işlemleri yapabilirsiniz. Siz de kullandığınız programlama diline uygun olan driver’ı kullanarak bir alıştırma yapabilirsiniz.
https://erhankocabuga.com/ dan alıntılanmıştır