FerretDB 0.3 發布,基於 PostgreSQL DBMS 的 MongoDB 實作

FerretDB 0.3 項目的發布已經發布,它允許您在不更改應用程序代碼的情況下將面向文檔的 DBMS MongoDB 替換為 PostgreSQL。 FerretDB 作為代理服務器實現,它將對 MongoDB 的調用轉換為對 PostgreSQL 的 SQL 查詢,這允許您使用 PostgreSQL 作為實際存儲。 代碼是用 Go 編寫的,並在 Apache 2.0 許可下分發。

遷移的需要可能與 MongoDB 向非自由 SSPL 許可證的過渡有關,該許可證基於 AGPLv3 許可證,但不是開放的,因為它包含在 SSPL 許可證下提供的歧視性要求,不僅是應用程序代碼本身,還有提供雲服務所涉及的所有組件的源代碼。

FerretDB 的主要目標受眾是在其應用程序中不使用 MongoDB 高級功能,但希望使用完全開放的軟件堆棧的用戶。 在目前的發展階段,FerretDB 仍然只支持典型應用中最常用的部分 MongoDB 特性。 未來,他們計劃實現與 MongoDB 驅動程序的完全兼容,並提供使用 FerretDB 作為 MongoDB 透明替代品的能力。

MongoDB 在操作鍵/值數據的快速和可擴展系統與功能強大且易於查詢的關係 DBMS 之間佔據一席之地。 MongoDB 支持以類似 JSON 的格式存儲文檔,具有相當靈活的生成查詢的語言,可以為各種存儲的屬性創建索引,有效地提供大型二進制對象的存儲,支持記錄更改和添加數據到數據庫的操作,可以按照 Map/Reduce 範式工作,支持複製和構建容錯配置。

FerretDB 0.3 版本引入了 findAndModify 命令,該命令可以修改文件但將其返回到原始版本。 欄位更新運算子 $inc 和 $set 已實作。 新增了對標量資料類型排序的支援。

來源: opennet.ru

添加評論