FerretDB 0.3 发布,基于 PostgreSQL DBMS 的 MongoDB 实现

FerretDB 0.3项目的版本已经发布,它允许您在不更改应用程序代码的情况下用PostgreSQL替换面向文档的DBMS MongoDB。 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

添加评论