FerretDB 0.3 已經發布,了解這次 MangoDB 現代化的新功能

幾週前 我們在博客上分享有關以下方面的新聞 更改 MangoDB 項目的名稱 它允許您用 PostgreSQL 替換 MongoDB 的面向文檔的 DBMS,而無需對應用程序代碼進行任何更改。

新項目名稱為 FerretDB 最近發布了該項目的 0.3 版本。 FerretDB 0.3 版本引入了 findAndModify 命令,該命令修改文檔但返回其原始版本,以及字段更新運算符等。

對於那些還不了解 FerretDB 的人,你應該知道 這是作為代理服務器實現的,它將對 MongoDB 的調用轉換為對 PostgreSQL 的 SQL 查詢, 它允許您將 PostgreSQL 用作真正的存儲。

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

FerretDB 的主要目標受眾是不使用高級功能的用戶 MongoDB 在他們的應用程序中,但希望使用完全開放的軟件堆棧。

在目前的發展階段, FerretDB 仍然只支持部分 MongoDB 功能 最常用於典型應用的。 未來,他們計劃實現對 MongoDB 的完整驅動程序支持,並提供使用 FerretDB 作為 MongoDB 透明替代品的能力。

MongoDB 在對鍵/值數據進行操作的快速且可擴展的系統與功能強大且易於查詢的關係 DBMS 之間佔據了一席之地。

MongoDB 支持以類似 JSON 的格式存儲文檔,具有相當靈活的生成查詢語言,可以為各種存儲屬性創建索引,提供二進制大對象的高效存儲,支持記錄更改和向數據庫添加數據的操作,它可以根據 Map/Reduce 範式工作,它支持複製和容錯配置的構建。

由於差異 在 PostgreSQL 和 MongoDB json 函數的語義中, 有出入 在比較和訂購不同類型時的行為。 為了解決這個問題,現在從 PostgreSQL 中提取了一個冗餘數據樣本,並在 FerretDB 端完成了結果的過濾,這使得在大多數情況下重複 MongoDB 的行為成為可能。

FerretDB 0.3 的主要創新

正如開頭所說,新版 FerretDB 0.3 的突出之處在於引入了 findAndModify 命令,它修改文檔,但返回其原始版本。

其他突出的變化是 負零處理得到了改進, 以及對排序標量數據類型的支持增加了。

還突出顯示的是 實現了新的字段更新運算符:$inc 和 $set, 加上對排序標量數據類型的支持增加了。

另一方面,提到了對 PostgreSQL 和 MongoDB 版本的處理進行了各種改進。

除此之外, 還注意到 $mod 運算符的錯誤測試已得到修復, 此外,該測試在所有 ARM64 操作系統上發布,並且為路由器/代理錯誤日誌記錄級別添加了更多可見性。

其他變化 從這個新版本中脫穎而出:

  • 更新代碼所有者
  • 同步虛擬控制器和 pg
  • 將 OP_*constants 重命名為 OpCode*constants
  • 改進 gopkg.in/yaml.v3
  • 在工具中碰撞 gopkg.in/yaml.v3
  • 製作類型路徑
  • 意外訂單值恐慌
  • 為函數和變量添加一些註釋
  • 刪除死代碼

終於 如果您有興趣了解更多信息,您可以查看詳細信息 在下面的鏈接中。


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責資料:AB Internet Networks 2008 SL
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。