MongoDB, bir tür NoSQL veritabanı olan çapraz platformlu ve açık kaynaklı bir belge odaklı veritabanıdır. NoSQL veritabanı olarak, MongoDB, ilişkisel veritabanının tablo tabanlı yapısını, BSON olarak adlandırdığı dinamik şemaları olan JSON benzeri belgeleri uyarlamak için kullanır.
Bu, belirli uygulama türleri için veri entegrasyonunu daha hızlı ve kolay hale getirir. MongoDB, tek bir sunucu dağıtımından büyük ve karmaşık çok site altyapılarına kadar ölçeklenebilirlik, yüksek kullanılabilirlik ve performans için üretilmiştir.
MongoDB ilk olarak, daha sonra 10gen olarak bilinen MongoDB Inc. tarafından Ekim 2007’de, aslında Windows Azure ve Google App Engine’e benzer bir PaaS (Hizmet Olarak Platform) ürününün önemli bir parçası olarak geliştirilmiştir. Gelişme, 2009 yılında açık kaynağa kaydırıldı.
MongoDB, en popüler NoSQL veritabanlarından biri haline geldi ve eBay, Craigslist, SourceForge ve The New York Times gibi birçok büyük web sitesinde kullanıldı. MongoDB GNU Affero Genel Kamu Lisansı altında, dil sürücüleri ise Apache Lisansı altında mevcuttur. Sunulan ticari lisanslar da vardır.
MongoDB’de her kayıt, aslında bir dökümandır. Dökümanlar JSON benzeri Binary BsON formatında saklanır. BSON belgeleri, sakladıkları elemanların sıralı bir listesini içerir nesnelerdir. Her bir eleman, bir alan adı ve belirli tipte bir değerden oluşur.
Milyarlarca verinin içerisinden istediğiniz veriyi rahatlıkla çağırarak analizlerinizi yapabiliyorsunuz. Farklı diller, tablolar ya da şemalar oluşturmanıza gerek yok. Eğer verileriniz çok büyükse ve işlem yaparken bilgisayarınızın performansında düşüş olmasını istemiyorsanız, anahtar değerlerini minimize etmeyi de deneyebilirsiniz.
MongoDB özellikleri :
*Alana göre aramayı, düzenli ifade aramalarını ve aralık sorgularını destekler.
*BSON belgesindeki herhangi bir alan indekslenebilir.
*Orijinal verilerin iki veya daha fazla kopyasından oluşan çoğaltma kümeleri aracılığıyla yüksek kullanılabilirlik sağlar.
*Verilerin nasıl dağıtılacağını belirlemek için “Shard” tuşları kullanılır.
*Verilerin toplu olarak işlenmesini sağlamanın yanı sıra toplama işlemlerini gerçekleştirmek için de uygulanabilir.
*MongoDB, yukarıdaki işlevlerden yararlanan ve paylaşım yoluyla dağıtılmış şekilde davranan dosya sistemi olarak kullanılabilir.