在软件开发中,我们有个非常经典却非常靠谱的名言,那就是所有的问题,都可以通过增加一个中间层来解决。如果不能,那就多增加一个。在这样的理念下,FerretDB应运而生。它巧妙地将 MongoDB 的灵活性与 PostgreSQL 的强大功能相结合,为数据库领域带来了新的可能性。
什么是 FerretDB?FerretDB 是一个开源代理,将 MongoDB 的协议查询转换为 SQL,并利用 PostgreSQL 作为数据库引擎。这一设计使其能够兼容 MongoDB 6.0 及以上版本,同时充分发挥 PostgreSQL 的性能和可靠性。

架构革新与性能提升
FerretDB 2.0 版本引入了基于微软开源的 DocumentDB PostgreSQL 扩展的架构革新。通过引入 BSON 数据类型优化存储引擎,新架构使性能提升最高达 20 倍,接近商业级文档数据库表现。

NoSql体验
FerretDB可以让你像使用MongoDB一样来使用数据库,也就是说,你可以完全体会到NoSql的方便特性,而不用安装MongoDB数据库。

PostgreSQL性能
FerretDB底层采用的是 PostgreSQL 作为数据存储,因此性能有一定的保证,关系型数据库的一些特点也都有保留。

兼容性与开源
作为一个连通 PostgreSQL 和 MongoDB之间的桥梁,FerretDB是兼容了NoSql的各种特性,让你使用起来感觉到就是在使用MongoDB一样,并且FerretDB 遵循 Apache 2.0 许可,避免了 SSPL 许可的限制,为许多开源项目提供了 MongoDB 5.0 及以上版本的直接替代选项。

平滑迁移至 PostgreSQL
对于已经使用 MongoDB 的应用,FerretDB 提供了一个平滑迁移至 PostgreSQL 的过渡方案。通过兼容 MongoDB 的协议,开发者无需重构大量代码即可将应用迁移到 PostgreSQL,享受其强大的功能和性能优势。

需要复杂查询和事务支持的应用
对于需要复杂查询、事务处理和数据一致性的应用,FerretDB 利用 PostgreSQL 的强大功能,提供了一个理想的解决方案。它结合了 MongoDB 的灵活性和 PostgreSQL 的可靠性,满足了多种业务需求。
过渡阶段
对于需要 MongoDB 灵活性同时又希望利用 PostgreSQL 强大功能的应用,FerretDB 是一个值得考虑的选择。它特别适合那种在NoSQL和SQL之间摇摆不定的用户,它也许不是你最终的伴侣,但是它却能够陪你走过孤单的岁月。
未来展望FerretDB 目前已经来到了版本2,性能得到了大幅进步和优化,团队计划在未来的版本中进一步优化性能,扩展功能,并增强与其他数据库系统的兼容性。这些努力将使 FerretDB 在数据库领域占据一席之地,为开发者和企业提供更多选择。

FerretDB 作为一个开源项目,成功地将 MongoDB 的灵活性与 PostgreSQL 的强大功能相结合,为数据库技术的发展注入了新的活力。无论是平滑迁移、复杂查询,还是数据复制和向量搜索,FerretDB 都表现出了巨大的潜力和价值。