MangoDB:MongoDB 的開源替代品

MongoDB 是一款以文件為導向的 NoSQL 資料庫系統,它徹底改變了許多開發者的遊戲體驗,使他們能夠比使用關聯式資料庫更快地建立應用程式。然而,MongoDB 已經放棄了其開源的初衷,轉而採用 SSPL 許可證,這使得許多商業和開源專案無法使用它。

為了因應這項需求,MangoDB 應運而生。對於尋求 MongoDB 開發體驗的人來說,MangoDB 是一個完美的解決方案,因為它提供了一個實現以文件為導向的 MongoDB 協定的層,該協定運行在 PostgreSQL 之上。

該專案旨在提供將 MongoDB 應用程式遷移到 PostgreSQL 的能力,並提供完全開源的軟體堆疊。程式碼使用 Go 語言編寫,並以 Apache 2.0 許可證發布。

值得注意的是,MongoDB 是一個以文件為導向的資料庫管理系統,可以部署在任意數量的電腦上,並且不需要預先定義的資料模式。這使得它能夠處理 BSON(二進位 JSON)格式的結構化對象,而無需預先定義的模式。

換句話說,可以隨時「動態」添加鍵,而無需重新配置資料庫。資料以文件的形式存儲,文件儲存在集合中-一個集合可以包含任意數量的文件。集合類似於關係資料庫中的表,而文件類似於記錄。

伺服器端公共授權(SSPL) 是 MongoDB 公司開發的專有軟體授權。根據 MongoDB 的說法,SSPL 基於 AGPL3 許可證,並增加了一個新章節,該章節“明確規定了將許可程序作為第三方服務分發的條款”,要求在將軟體作為服務的一部分向公眾提供時,必須提供所有源代碼。

這項變更於 2018 年 10 月實施,此後 Debian、Red Hat Enterprise Linux 和 Fedora 發行版相繼放棄了 MongoDB,理由是對 SSPL 有擔憂。亞馬遜推出了相容但專有的 DocumentDB 服務,看來 SSPL 並未提升 MongoDB 的雲端營收。大多數 MongoDB 使用者並不需要 MongoDB 提供的眾多進階功能,但他們確實需要一個開源資料庫解決方案,而這正是 MongoDB 的用武之地。

我們解決方案的核心是一個無狀態代理,它將 MongoDB 協議查詢轉換為 SQL,並使用 PostgreSQL 作為數據庫引擎。 它將與 MongoDB 驅動程序兼容,並且在許多情況下,它應該可以直接替代 MongoDB。

MangoDB 的目標是成為 MongoDB 的事實上的開源替代方案。 MangoDB是一個開源代理,它將 MongoDB 的硬編碼協定查詢轉換為 SQL,並使用 PostgreSQL 作為其資料庫引擎。 MangoDB 將相容於 MongoDB 驅動程序,並在許多情況下直接取代 MongoDB。

該程式充當代理,將對 MongoDB 的呼叫轉換為對 PostgreSQL 的 SQL 查詢,並使用 PostgreSQL 作為實際儲存。該專案支援 MongoDB 驅動程序,但仍處於原型階段,尚不支援高級 MongoDB 協定特性,不過它已經能夠勝任簡單應用程式的轉換工作。

由於項目過渡到基於 AGPLv3 許可證但未開放的非免費 SSPL 許可證,可能會出現避免使用 MongoDB DBMS 的需要,因為它包含在 SSPL 下提供的歧視性要求不僅是應用程序本身的代碼,還包括提供雲服務所涉及的所有組件的源代碼。

最後,如果您有興趣了解更多關於MangoDB 的信息,可以在以下連結中找到詳細資訊。


在 Google 中將其新增為首選來源