Last chance! 50% off DataCamp Premium
Sale ends in
Katı veritabanı şemalarıyla ya da hantal ölçekleme sorunlarıyla uğraştıysanız, yalnız değilsiniz. İşte MongoDB tam burada devreye giriyor. Esnek ve yüksek performanslı bir NoSQL veritabanı olarak MongoDB, geliştiricilerin veriyi depolama ve onunla çalışma şeklini değiştirdi. İlk kez kullandığım zamanı hâlâ hatırlıyorum—JSON benzeri belgelere sorgu atmak son derece sezgisel gelmişti.
Bu yazıda MongoDB’nin ne olduğunu, neden bu kadar popüler olduğunu ve nasıl kullanabileceğinizi anlatacağım.
MongoDB, belge odaklı verilerle çalışmak üzere tasarlanmış açık kaynaklı bir NoSQL veritabanıdır. Geleneksel satır ve sütunlar yerine verileri esnek, JSON benzeri belgelerde saklar; bu da hızla evrilmesi gereken uygulamalar için idealdir.
"MongoDB" adı humongous (kocaman) kelimesinden gelir; yani muazzam miktarda veriyi kaldıracak şekilde tasarlanmıştır. 2009’da 10gen (şimdiki MongoDB Inc.) tarafından yayımlandı ve o günden beri büyümeye devam ediyor. MongoDB, büyük ve dağıtık veri setlerini yüksek performansla yönetmek için mükemmeldir.
MongoDB, ihtiyacınıza göre birkaç farklı sürümle gelir. Küçük projeler için harika olan ücretsiz Community Edition var. Altyapıyla uğraşmak istemezseniz, MongoDB Atlas tamamen yönetilen ve AWS, Google Cloud ile Azure üzerinde çalışan bir bulut hizmetidir. Bu esneklik, MongoDB’nin farklı sektörlerde yaygınlaşmasına ciddi katkı sağladı.
> MongoDB’ye ve NoSQL veritabanlarına yeniyseniz, derinleşmeden önce temel kavramları anlamak için bu başlangıç dostu NoSQL eğitimine göz atın. Ayrıca, MongoDB’nin daha geniş NoSQL ekosistemine nasıl oturduğunu görmek için Introduction to NoSQL ve NoSQL Concepts kurslarını da inceleyebilirsiniz.
MongoDB, modern ve veri yoğun uygulamalarla çalışan geliştiricilerin ilk tercihi olmasını sağlayan zengin özelliklerle gelir. Bu bölümde bunları inceleyelim.
MongoDB, verileri BSON (Binary JSON) adı verilen bir format kullanarak JSON benzeri belgeler koleksiyonlarında saklar.
JSON; string, sayı ve dizi gibi temel veri tiplerini destekleyen, insan tarafından okunabilir, metin tabanlı bir formattır. İkili karşılığı olan BSON ise JSON’u tarih, ikili veri ve hassas sayısal biçimler (ör. tamsayılar, kayan noktalı sayılar) gibi ek tiplerle genişletir.
JSON okunabilirlik için idealken, BSON depolama, hız ve gelişmiş veri işleme için optimize edilmiştir ve bu nedenle MongoDB için tercih edilen formattır.
MongoDB ile etkileşimdeyken geliştiriciler kendi programlama dillerinin yerel veri yapılarıyla (ör. JavaScript nesneleri veya Python sözlükleri) çalışırlar. MongoDB sürücüsü, bu yapılar ile BSON arasındaki dönüşümü üstlenir ve kesintisiz veri depolama ve alma sağlar.

MongoDB verileri BSON olarak nasıl saklar. Görsel kaynağı: MongoDB.
MongoDB verileri koleksiyonlar ve belgeler halinde organize eder:
MongoDB’nin şemasız tasarımı, çeşitli ve değişen verileri yönetmede olağanüstü esneklik sunan en güçlü özelliklerinden biridir.
Geleneksel ilişkisel veritabanlarında yeni bir alan eklemek tüm tablo yapısını değiştirmeyi gerektirirken, MongoDB aynı koleksiyon içindeki belgelere tamamen farklı alanlar ve yapılar tanımlamaya izin verir. Bu da katı şema gereksinimini ortadan kaldırır ve verileri zorla tek tip hâle getirmeden farklı içerikleri kolayca depolamayı sağlar.
Şema değişikliklerinin MongoDB’de nasıl çalıştığına karşılık, geleneksel ilişkisel veritabanlarında nasıl olduğuna daha yakından bakalım:
İlişkisel bir veritabanında, bir products tablosuna yeni bir alan (ör. discount_price) eklemek isterseniz şunları yapmanız gerekir:
MongoDB’de ise products koleksiyonunda yalnızca ilgili belgelere discount_price alanını ekleyebilirsiniz. Örneğin:
// Document 1
{
"_id": 1,
"name": "Laptop",
"price": 1200
}
// Document 2
{
"_id": 2,
"name": "Smartphone",
"price": 800,
"discount_price": 750 // New field added only where needed
}
Bu esneklik, veri gereksinimlerinin sık değiştiği hızlı ortamlar için paha biçilmezdir. Geliştiricilerin kesinti veya karmaşık geçişler olmadan hızla uyum sağlamasına olanak tanır; bu da MongoDB’yi çevik geliştirme ve modern uygulamalar için ideal kılar.
MongoDB, yüksek performanslı veri depolama ve erişim için tasarlanmıştır; hız ve ölçeklenebilirlik gerektiren uygulamalar için idealdir.
Öne çıkan özelliklerinden biri bellek eşlemeli dosyalar kullanmasıdır; bu sayede işletim sistemi önbellekleme işlemlerini verimli şekilde yönetir, gecikmeyi azaltır ve okuma/yazma işlemlerini hızlandırır. MongoDB; tek alanlı, bileşik, coğrafi, metin ve karma indeksler dahil çeşitli indeks türlerini destekleyerek sorgu performansını artırır.
MongoDB, ultra düşük gecikme gerektiren senaryolar için tüm veriyi RAM’de tutarak daha hızlı erişim sağlayan bir bellek içi depolama motoru sunar. Ayrıca MongoDB’nin sorgu iyileştiricisi, en iyi indeksleri ve yürütme planlarını otomatik seçerek sorguların verimli çalışmasını sağlar.
Bu özellikler, yatay ölçekleme (sharding) ile birleştiğinde MongoDB’yi gerçek zamanlı analitik, mobil uygulamalar ve IoT sistemleri gibi yüksek aktarım kapasiteli uygulamalar için sağlam bir tercih yapar.
MongoDB’de yeniyseniz endişe etmeyin—kurulumu basittir ve yerel yükleme ile bulut seçeneği arasında tercih yapabilirsiniz. Bu seçeneklere burada bakalım.
1. MongoDB’yi yerel olarak yükleyin: Yerel makinenize MongoDB Community Edition’ı r resmi MongoDB web sitesinden indirerek kurabilirsiniz. Windows, macOS ve Linux için kurulum talimatları mevcuttur ve kurulum genellikle birkaç adımdan oluşur. Bu seçenek, ortamınız üzerinde tam kontrol sağlar ve geliştirme ile test için idealdir.
2. MongoDB Atlas’ı kullanın (bulut tabanlı): Yerel kurulumu atlamak isterseniz, MongoDB Atlas harika bir alternatiftir. MongoDB’nin tamamen yönetilen bulut hizmetidir ve AWS, Azure ile Google Cloud üzerinde çalışır. Atlas, yedeklemeler, ölçekleme ve güncellemeler dahil altyapıyı sizin yerinize yönetir. Ayrıca, cömert bir ücretsiz katman vardır; maliyete girmeden başlamayı kolaylaştırır.
İster yerel kurulumun kontrolünü, ister bulutun kolaylığını tercih edin, MongoDB iş akışınıza uygun yolu seçmeyi kolaylaştırır.
MongoDB yüklendikten sonra sıradaki adım bağlanmaktır—ister kabukta hızlı testler için ister uygulamalarınıza entegre etmek için.
Mongo kabuğunu kullanma:
Veritabanıyla etkileşim kurmak için komut satırı arayüzü olan Mongo kabuğunu kullanarak MongoDB’ye bağlanabilirsiniz. Terminalinizde mongosh komutunu çalıştırmanız yeterlidir.
mongosh
Bu komut kabuğu başlatır ve varsayılan olarak yerel MongoDB örneğinize bağlanır.
Bir uygulamadan bağlanma:
Uygulama geliştirme için Python, JavaScript (Node.js) veya Java gibi programlama dilleri üzerinden MongoDB’nin resmi sürücülerini kullanarak bağlanabilirsiniz. Örneğin Python’da pymongo kütüphanesini kullanarak bağlantı kurabilirsiniz:
from pymongo import MongoClient
uri = "your_mongodb_connection_string"
client = MongoClient(uri)
try:
# Test the connection
client.admin.command('ping')
print("Connected to MongoDB!")
except Exception as e:
print(e)
finally:
client.close()
"your_mongodb_connection_string" ifadesini yerel veya Atlas bağlantı URI’nizle değiştirin. Bağlantı kurulduktan sonra belge ekleme ve sorgulamaya hazırsınız.
> Python ile mi çalışıyorsunuz? Introduction to Using MongoDB for Data Science with Python adlı bu kurs, Python kullanarak MongoDB verilerine bağlanmayı, sorgulamayı ve analiz etmeyi öğrenmek için harika bir yerdir.
MongoDB, veritabanları, koleksiyonlar ve belgelerle etkileşim için bir dizi komut sağlar. Başlamanıza yardımcı olacak bazı temel komutlar şunlardır:
use myDatabase
Bu komut myDatabase adlı veritabanına geçer. Henüz yoksa MongoDB, ilk kez veri eklediğinizde oluşturur.
db.createCollection("myCollection")
Geçerli veritabanı içinde myCollection adlı yeni bir koleksiyon oluşturur.
db.myCollection.insertOne({ name: "Alice", age: 30 })
myCollection koleksiyonuna yeni bir belge ekler.
db.myCollection.find({ age: { $gt: 25 } })
age alanı 25’ten büyük olan tüm belgeleri getirir.
Bu komutlar sadece başlangıç—MongoDB güçlü sorgulama, indeksleme ve toplulaştırma yeteneklerine sahiptir. Komutların tam listesini resmi MongoDB belgelerinde inceleyebilirsiniz.
> Daha kapsamlı, uygulamalı bir rehber arıyorsanız, MongoDB veritabanlarını kurma ve sorgulama üzerine bu MongoDB eğitimi, kurulumu ve temel işlemleri adım adım anlatır.
MongoDB’den en iyi şekilde yararlanmak mı istiyorsunuz? Bu en iyi uygulamalar, performansı artırmanıza, yaygın tuzaklardan kaçınmanıza ve sorunsuz ölçeklenen uygulamalar kurmanıza yardımcı olabilir.
Doğru indeksleme, MongoDB performansını optimize etmek için kritiktir. İndekslerinizin etkili olmasını sağlamak için bazı temel stratejiler:
last_name hem de first_name ile sıkça sorgulama yapıyorsanız, her iki alan üzerinde bir bileşik indeks daha verimli olacaktır.status veya gender) indekslerken dikkatli olun. Bileşik indeksler yardımcı olabilir; ancak birleştirilen alanların yüksek kardinaliteye sahip olduğundan emin olun.> İndeksleme konusunda daha derine inmek için MongoDB’nin performans için en iyi indeksleme uygulamalarına göz atın.
Etkili veri modelleme, MongoDB’nin performansını ve ölçeklenebilirliğini optimize etmek için kritik öneme sahiptir. MongoDB’nin belge odaklı modeli veri yapılandırmada esneklik sunar; ancak verimlilik için dikkatli planlama gerektirir.
MongoDB’de veri modelleme için bazı en iyi uygulamalar şunlardır:
product_id referansıyla bağlanabilir.MongoDB kurulumunuzu korumak, veri bütünlüğünü, erişilebilirliği ve uyumluluğu sağlamak açısından kritiktir. Sağlam yedekleme ve güvenlik uygulamalarını hayata geçirmek için kısa bir rehber:
mongodump ve mongorestore ile yedekler oluşturup geri yükleyin. Bu araçlar verileri BSON formatında dışa ve içe aktarmanızı sağlar; uyumluluk ve tutarlılık sunar. Daha gelişmiş yedekleme çözümleri için oplog yedekleriyle (Ops Manager) zaman noktasına geri yüklemeyi değerlendirin. Bu sayede veritabanınızı belirli bir ana döndürerek veri kaybını en aza indirebilirsiniz.İster küçük bir yan proje ister büyük ölçekli kurumsal bir uygulama geliştiriyor olun, MongoDB verilerle kendi koşullarınıza göre çalışmanız için size esneklik ve güç sunar. Belge tabanlı modeli, dinamik şema tasarımı ve zahmetsiz ölçeklenebilme özelliği, onu modern geliştiriciler için vazgeçilmez bir tercih yapar. Etkili kullanımını anlayıp en iyi uygulamaları takip ederek hızlı, esnek ve geleceğe hazır uygulamalar geliştirme yolunda büyük mesafe kat edeceksiniz.
Yeteneklerinizi bir üst seviyeye taşımak ister misiniz? MongoDB Sertifikasyon rehberini keşfedin ve sertifikasyon sürecinde neler olduğunu anlayın ya da bir sonraki teknik rolünüze hazırlanmak için yaygın MongoDB mülakat soruları ile kendinizi tazeleyin.
Evet, MongoDB yerel olarak çalıştırabileceğiniz ücretsiz ve açık kaynaklı bir Community Edition sunar. MongoDB Atlas ayrıca sınırlı kaynaklara sahip ücretsiz bir bulut veritabanı katmanı sağlar—öğrenme ve küçük projeler için idealdir.
BSON (Binary JSON), MongoDB’nin belgeleri depolamak için kullandığı formattır. JSON’a benzer; ancak tarih ve ikili veri gibi ek veri tiplerini içerir ve performans ile gezinti için optimize edilmiştir.
MongoDB geleneksel bir analitik veritabanı olmasa da toplulaştırma (aggregation) hatları ve Tableau, Power BI ile MongoDB Charts gibi araçlarla entegrasyonları destekler; veri analizi ve görselleştirme için kullanılabilir.
MongoDB belge düzeyinde ACID işlemleri destekler ve 4.0 sürümünden itibaren çok belgeli ACID işlemlerini de sağlar—bu da veri tutarlılığı gerektiren uygulamalar için uygun olduğu anlamına gelir.
MongoDB; kimlik doğrulama, rol tabanlı erişim denetimi, beklemede ve aktarımda şifreleme ile denetim (auditing) gibi özellikler içerir. MongoDB Atlas, ağ izolasyonu ve otomatik yedeklemeler gibi daha fazla güvenlik katmanı ekler.
MongoDB; içerik yönetim sistemlerinden ve mobil uygulamalardan gerçek zamanlı analitik platformlarına ve IoT çözümlerine kadar çok geniş bir yelpazede kullanılır. Esnekliği, pek çok kullanım senaryosuna uygun hale getirir.
Evet! MongoDB, parçalama (sharding) yoluyla yatay ölçeklemeyi destekler; böylece veriyi birden fazla sunucuya dağıtarak yüksek trafik ve büyük veri hacimlerini verimli şekilde yönetebilirsiniz.
Karen, ölçeklenebilir veri platformları kurma tutkusu olan bir Veri Mühendisidir. Terraform ile altyapı otomasyonu konusunda deneyime sahiptir ve öğrendiklerini blog yazıları ve eğitimlerde paylaşmaktan heyecan duyar. Karen bir topluluk geliştiricisidir ve veri profesyonelleri arasında bağlantılar kurmaya tutkuyla bağlıdır.
Bu kurslarla MongoDB hakkında daha fazlasını öğrenin!
Kurs
Kurs
Kurs

blog
Abid Ali Awan
14 dk.
blog
Dario Radečić
15 dk.
Eğitim
Kurtis Pykes
8 dk.
Eğitim
Adel Nehme