Yazılım geliştirmede Veritabanı Yönetim Sistemi (DBMS), verilerin depolanması, güvenliği, manipülasyonu ve modellenmesi için kritik bir öneme sahiptir. Geleneksel veritabanları, verileri satır ve sütunlar halinde saklar, bu da ölçeklenebilir uygulamalar oluşturmayı zorlaştırır. İşte bu noktada MongoDB ve MongoDB sorgu optimizasyonu devreye girerek bu soruna çözüm sunar.
Bu yazıda, MongoDB’nin ne olduğunu, geleneksel veritabanlarından nasıl farklılaştığını, temel özelliklerini ve ölçeklenebilir uygulamalar geliştirmede nasıl kullanıldığını detaylı bir şekilde inceleyeceğiz. Ayrıca, MongoDB’yi kurma, doküman oluşturma ve sorgulama adımlarını da adım adım anlatacağım.
MongoDB Nedir ve Neden Bu Kadar Popüler?

MongoDB, büyük miktarda veriyi depolayan, yöneten ve erişen açık kaynaklı bir veritabanıdır. Geleneksel veritabanlarından farklı olarak, verileri tablolar halinde değil, JSON benzeri bir format olan BSON (Binary JSON) formatında saklar. Bu özelliği sayesinde, NoSQL (Not Only SQL) veritabanı olarak da bilinir.
MongoDB’nin popülaritesinin ardında yatan temel nedenlerden biri, şemasız yapısıdır. Bu, geliştiricilerin verileri önceden tanımlanmış bir şemaya uymak zorunda kalmadan, esnek bir şekilde depolamasına olanak tanır. Bu da özellikle hızlı geliştirme süreçleri ve değişen gereksinimler için büyük bir avantaj sağlar.
- Genişletilebilir ve Ölçeklenebilir mimarisi
- Şema esnekliği sayesinde hızlı geliştirme imkanı sunması
- Yüksek performanslı sorgulama ve indeksleme yetenekleri
- Çok çeşitli veri tiplerini desteklemesi
- Gelişmiş topluluk desteği ve zengin dokümantasyonu
MongoDB, esnek veri modelleri ve hızlı geliştirme gerektiren uygulamalar için ideal bir çözümdür. Özellikle, yapılandırılmamış veya yarı yapılandırılmış verileri işlemek için uygundur.
MongoDB’nin Geleneksel İlişkisel Veritabanlarından Farkları
MongoDB ve geleneksel ilişkisel veritabanları arasında önemli farklılıklar bulunmaktadır. Bu farklılıklar, veri yapısı, sorgulama dili, karmaşıklık, ACID işlemleri ve kullanım alanları gibi çeşitli açılardan kendini gösterir.
Veri Yapısı: MongoDB, verileri BSON formatında, şemasız bir yapıda saklarken, ilişkisel veritabanları verileri tablolar halinde, önceden tanımlanmış bir şemaya göre saklar.
Sorgulama Dili ve İşlemler
MongoDB, JSON benzeri dokümanlar üzerinde çalışmak için MongoDB Query Language (MQL) kullanır. İlişkisel veritabanları ise veri manipülasyonu için Structured Query Language (SQL) kullanır.
Karmaşıklık: MongoDB’nin esnek şeması, daha hızlı geliştirmeyi kolaylaştırır. İlişkisel veritabanları ise şemaları, indeksleri ve ilişkileri tanımlamayı ve sürdürmeyi gerektirir, bu da daha karmaşık bir yapıya yol açar.
ACID ve Veri Güvenliği
MongoDB, tek bir düğüm içinde doküman düzeyinde güçlü ACID (Atomicity, Consistency, Isolation, Durability) garantileri sağlamaz. Bu, geleneksel ilişkisel veritabanlarının MongoDB’yi geride bıraktığı bir alandır.
Kullanım Alanları
MongoDB, esnek veri modelleri ve hızlı geliştirme gerektiren uygulamalar için idealdir. İlişkisel veritabanları ise veri bütünlüğü ve karmaşık işlemleri gerektiren uygulamalar için daha uygundur.
MongoDB’nin Temel Özellikleri

MongoDB, geliştiricilere çeşitli avantajlar sunan bir dizi temel özelliğe sahiptir. Bu özellikler, şemasız yapı, esnek doküman modeli, yatay ölçeklenebilirlik, yüksek performans ve zengin sorgulama dili olarak sıralanabilir.
Şemasız Yapı: MongoDB, önceden tanımlanmış bir şemaya sahip olmayan bir NoSQL veritabanıdır. Bu, verilerin herhangi bir formatta depolanabilmesine olanak tanır.
Esnek Doküman Modeli: Bu veritabanı, dokümanları BSON formatında saklar. İç içe dokümanlar ve diziler sağlar ve esnek veri gösterimini destekler.
Yatay Ölçeklenebilirlik ve Performans
Kullanıcıların verileri birden fazla sunucuya yaymasına olanak tanır. Bu da yatay ölçeklendirmeye yardımcı olur. Ayrıca, bellek eşlemeli depolama motoru sayesinde yüksek performanslı okuma sağlar.
Zengin Sorgulama Dili: MongoDB, sorgulama dili aracılığıyla güçlü sorguları destekler. Ayrıca, çeşitli operatörler ve ifadeler yardımıyla verileri filtrelemeye, sıralamaya ve dönüştürmeye olanak tanır.
MongoDB Kurulumu ve Ayarları
MongoDB’yi bilgisayarınıza kurmak ve ayarlamak için aşağıdaki adımları izleyebilirsiniz:
- İlk olarak, MongoDB community server sürümünü indirin.
- Ardından, işletim sisteminize uygun sürümü seçin.
- İndirme işlemi tamamlandıktan sonra, MSI dosyasını açın ve kurulumu başlatın.
- Kurulum sırasında, “Run service as Network Service user” seçeneğini işaretleyin.
- Kurulum tamamlandıktan sonra, sistem özelliklerine tıklayarak bir ortam değişkeni oluşturmanız gerekir.
- Ortam değişkenini düzenleyin ve MongoDB’nin kopyalanan bin yol bağlantısını sistemden yapıştırın.
- Ardından, komut istemini açın ve “Mongod” komutunu çalıştırın.
- Son olarak, C sürücüsünde “data” adlı bir klasör oluşturun. Ayrıca, db adlı bir alt klasör oluşturun ve tekrar “Mongod” komutunu çalıştırın.
- Son olarak, yeni bir komut istemi penceresi açın ve sunucuyu Mongo kabuğuyla bağlamak için “Mongo” yazın.
MongoDB’de Doküman Oluşturma ve Sorgulama Yöntemleri
MongoDB’de bir doküman oluşturmak için belirli ön koşullar vardır: Öncelikle, MongoDB dağıtımına bir bağlantı oluşturun ve etkinleştirin; ardından bir MongoDB oyun alanı açın. Ön koşullar karşılandıktan sonra, aşağıdaki yöntemlerden herhangi birini izleyerek bir doküman oluşturabilirsiniz:
1. insert() Metodu: Bu yöntem, bir koleksiyona bir veya daha fazla doküman eklemek için kullanılır. Ardından, durum bilgisi sağlayan bir WriteResult nesnesi döndürür.
>db.COLLECTION_NAME.insert(document)
Birden çok dokümanı bir dizi biçiminde ekleyebilirsiniz. Dokümanların değerleri köşeli parantez [] içinde belirtilmeli ve her doküman virgülle ayrılmalıdır.
2. insertOne() Metodu: Bu yöntem, bir koleksiyona tek bir doküman eklemek için en iyisidir ve iki argüman kabul eder. Birincisi, zorunlu doküman argümanıdır; koleksiyona eklenmesi gereken dokümanı belirtir. İkincisi, isteğe bağlı writeConcern argümanıdır; MongoDB’nin ekleme işlemini nasıl onaylayacağını açıklar.
db.collection.insertOne(
<document>,
{
writeConcern: <document>
}
)
3. insertMany() Metodu: Belirli bir koleksiyona bir dizi doküman eklemek için kullanılır. Dokümanlar genellikle aksi belirtilmedikçe sıraya göre eklenir. Bu nedenle, insertMany yöntemini kullanarak, kodlayıcılar id_field’ı kullanmadan bilgi ekleyebilirler. Ancak, id_field eklenmezse, veritabanı nesneye otomatik olarak benzersiz bir kimlik ekler. Öte yandan, bir id_field eklerseniz, hataları önlemek için benzersiz bir değere sahip olmalıdır.
db.Collection_name.insertMany(
[<document 1>, <document 2>, …],
{
writeConcern: <document>,
ordered: <boolean>
})
MongoDB ile Kariyerinizi Geliştirin
MongoDB, ölçeklenebilir uygulamalar oluşturmak için en popüler veritabanlarından biridir. eBay, Cisco, Adobe, Google ve Toyota gibi 43.000’den fazla şirket bu veritabanını kullanıyor ve bu beceriyi ustalaşmak, geliştiricilerin yıllık ortalama 95.000 ABD doları kazanmasına yardımcı olabilir. Bu nedenle, MongoDB veritabanı ve MongoDB sorgu optimizasyonu hakkında derinlemesine bilgi sahibi olmak en iyisidir.
Sonuç olarak, MongoDB, modern yazılım geliştirme dünyasında önemli bir yere sahip olan güçlü ve esnek bir veritabanıdır. Ölçeklenebilir uygulamalar oluşturmak, hızlı geliştirme süreçlerini desteklemek ve çeşitli veri tiplerini işlemek için ideal bir çözümdür. 2025 yılında da popülaritesini koruyacak ve daha da artıracaktır.
Pingback: Github Student Developer Pack Nedir? Öğrenci Geliştirici Paketini Keşfedin - Yazılım Geliştiricisi