MongoDB, belge tabanlı, NoSQL bir veritabanı sistemidir ve birçok geliştirici için oyun değiştirici nitelikte olmuş, ilişkisel veritabanlarına kıyasla uygulamaları daha hızlı geliştirmelerine olanak sağlamıştır. Ancak MongoDB, açık kaynak köklerini terk ederek SSPL lisansına geçmiştir; bu da onu birçok ticari ve açık kaynak projesi için kullanılamaz hale getirmektedir.
Bunun üzerine, MongoDB geliştirme deneyimi arayanlar için mükemmel bir çözüm olan MangoDB tanıtıldı ; çünkü MangoDB, PostgreSQL üzerinde çalışan belge odaklı MongoDB protokolünün uygulamasını içeren bir katman sunuyor.
Projenin amacı, MongoDB uygulamalarını PostgreSQL'e geçirme olanağı ve tamamen açık kaynaklı bir yazılım yığını sağlamaktır. Kod Go dilinde yazılmıştır ve Apache 2.0 lisansı altında dağıtılmaktadır.
MongoDB'nin , herhangi bir sayıda bilgisayara kurulabilen ve önceden tanımlanmış bir veri şeması gerektirmeyen, belge odaklı bir veritabanı yönetim sistemi olduğunu belirtmek önemlidir . Bu, önceden tanımlanmış bir şema olmaksızın BSON (ikili JSON) formatındaki yapılandırılmış nesneleri işleyebilmesini sağlar.
Başka bir deyişle, veritabanını yeniden yapılandırmaya gerek kalmadan, anahtarlar her zaman "anında" eklenebilir . Veriler, koleksiyonlarda saklanan belgeler biçimindedir; bir koleksiyon herhangi bir sayıda belge içerebilir. Koleksiyonlar tablolara, belgeler ise ilişkisel veritabanlarındaki kayıtlara benzer.
Sunucu Tarafı Kamu Lisansı (SSPL), MongoDB Inc. tarafından geliştirilen tescilli bir yazılım lisansıdır. MongoDB'ye göre, SSPL, AGPL3 lisansına dayanmaktadır ve "lisanslı programın üçüncü taraf bir hizmet olarak dağıtılması için şartları açık ve net bir şekilde belirten" yeni bir bölüm eklenmiştir; bu bölüm, yazılım bir hizmetin parçası olarak kamuya sunulduğunda tüm kaynak kodunun da erişilebilir olmasını gerektirir.
Bu değişiklik Ekim 2018'de uygulandı ve ardından Debian, Red Hat Enterprise Linux ve Fedora dağıtımları, SSPL ile ilgili endişeleri gerekçe göstererek MongoDB'yi terk etti. Amazon, DocumentDB adında uyumlu ancak tescilli bir hizmet başlattı ve SSPL'nin MongoDB için bulut gelirlerini artırmada başarısız olduğu görüldü. Çoğu MongoDB kullanıcısının MongoDB'nin sunduğu birçok gelişmiş özelliğe ihtiyacı yoktur, ancak açık kaynaklı bir veritabanı çözümüne ihtiyaç duyarlar ve işte burada MongoDB devreye giriyor.
Çözümümüzün özü, MongoDB protokol sorgularını SQL'e dönüştüren ve veritabanı motoru olarak PostgreSQL'i kullanan durum bilgisi olmayan bir proxy'dir. MongoDB sürücüleriyle uyumlu olacak ve çoğu durumda MongoDB'nin doğrudan yerine geçecek şekilde çalışması gerekir.
MangoDB, MongoDB'ye fiili açık kaynak alternatifi olmayı hedefliyor. MangoDB, MongoDB'nin sabit kodlu protokol sorgularını SQL'e çeviren ve veritabanı motoru olarak PostgreSQL kullanan açık kaynaklı bir proxy'dir. MangoDB, MongoDB sürücüleriyle uyumlu olacak ve birçok durumda MongoDB'nin doğrudan yerine geçecektir.
Program , MongoDB'ye yapılan çağrıları PostgreSQL'e yönelik SQL sorgularına çeviren bir proxy görevi görür ve gerçek depolama alanı olarak PostgreSQL'i kullanır. Proje, MongoDB sürücülerini desteklemektedir ancak henüz prototip aşamasındadır ve gelişmiş MongoDB protokol özelliklerini henüz desteklememektedir; ancak basit uygulamaları çevirmek için zaten uygundur.
MongoDB VTYS'nin kullanımından kaçınma ihtiyacı, projenin AGPLv3 lisansına dayalı ücretsiz olmayan bir SSPL lisansına geçişi nedeniyle ortaya çıkabilir, ancak SSPL kapsamında tedarik için ayrımcı bir gereklilik içerdiğinden açık değildir. yalnızca uygulamanın kodu değil, aynı zamanda bulut hizmetlerinin sağlanmasında yer alan tüm bileşenlerin kaynak kodları.
Son olarak, MangoDB hakkında daha fazla bilgi edinmek isterseniz , ayrıntıları aşağıdaki bağlantıda bulabilirsiniz .