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. 权利:您可以随时限制,恢复和删除您的信息。