FerretDB 2.7.0 介绍与选型指南

基于官方资料梳理 FerretDB 2.7.0 的定位、PostgreSQL 加 DocumentDB 架构、命令支持与已知差异、DEB 快速上手、适用场景,并与 MongoDB、PostgreSQL JSONB、Apache CouchDB 做许可与发版节奏选型对比

FerretDB文档型NoSQL2026/10/19

FerretDB 2.7.0 介绍与选型指南

一、信息基准

  • 查询日期:2026-10-18(本文全部版本号、发行日期、许可与兼容信息均于该日联网溯源官方渠道,未做本地安装与实测)。
  • 版本依据:FerretDB 官方最新稳定版为 v2.7.0(GitHub Releases 发行记录,发布于 2025-11-10);官方文档站当前版本为 v2.7(另有 v2.8 开发中文档、v2.5 与 v1.24 维护文档)。
  • 组件版本配对:FerretDB v2.7.0 官方声明与 DocumentDB v0.107.0-ferretdb-2.7.0 扩展搭配工作最佳;后端依赖 PostgreSQL 加 DocumentDB 扩展。

1.1 官方来源清单

来源地址用途
FerretDB 官方文档(Introduction)https://docs.ferretdb.io/产品定位、协议转换说明
兼容性与已知差异(Compatibility)https://docs.ferretdb.io/migration/compatibility/命令支持矩阵、限制条目
安装文档(DEB 包)https://docs.ferretdb.io/installation/ferretdb/deb/快速上手步骤
GitHub 仓库 README 与 LICENSEhttps://github.com/FerretDB/FerretDB架构图、许可证(Apache-2.0)
GitHub Releases(releases.atom)https://github.com/FerretDB/FerretDB/releasesv2.7.0 发行说明与日期
DocumentDB 扩展仓库https://github.com/documentdb/documentdb存储引擎扩展
官网https://www.ferretdb.com/商业与托管信息
仓库元数据查询(ungh.cc 同步副本)https://ungh.cc/repos/FerretDB/FerretDBGitHub stars 数

二、软件概述

本文介绍的是 FerretDB 2.7.0。FerretDB 是一个开源的 MongoDB 替代品:它本身是一个代理服务,将 MongoDB 5.0 及以上版本的线上协议(wire protocol)查询转换为 SQL,并以 PostgreSQL 加 DocumentDB 扩展作为实际数据库引擎。项目采用 Apache-2.0 许可证,主程序使用 Go 语言编写。

项目诞生的直接动因是 MongoDB 从开源许可证转向 SSPL 后带来的授权复杂性:官方 README 明确指出,多数 MongoDB 用户并不需要 MongoDB 的高级特性,他们需要的只是一个"好用、驱动熟悉、且不受许可限制"的开源文档数据库,FerretDB 正是为填补这一空白而生。

在兼容性定位上,官方文档表述为:所有与 MongoDB 5.0+ 兼容的驱动与应用,理论上都应与 FerretDB 兼容;在多数场景下可作为 MongoDB 5.0+ 的直接替换(drop-in replacement)。官方同时建议在迁移生产前先通过预迁移测试验证应用适配性。

v2.7.0 是 2.x 系列的当前稳定版,官方发行说明要点包括:

  • 跳过了 v2.6.0 版本号,以对齐 FerretDB 与 DocumentDB 的版本编号体系;
  • 新增基础版 MCP server 支持(后续版本将持续增强);
  • PostgreSQL 连接改为复用模式,通常带来一定性能收益;
  • Prometheus 指标与 OpenTelemetry 追踪名称有变更,官方标注其"尚不稳定"。

三、核心架构

3.1 三层组件模型

官方 README 给出的架构流向为:

任意应用(任意 MongoDB 驱动)
        │  MongoDB 协议(BSON)
        ▼
    FerretDB(Go 单二进制代理)
        │  PostgreSQL 协议(SQL)
        ▼
PostgreSQL(DocumentDB 扩展)─── 实际数据存储
  • 客户端层:任何 MongoDB 驱动或应用程序,无需修改代码即可连接;
  • 代理层:FerretDB 负责 MongoDB 线上协议的解析、命令转换与鉴权,本身不持久化数据;
  • 存储层:PostgreSQL 挂载微软开源的 DocumentDB 扩展,承担文档数据的落盘、索引与查询执行。

3.2 版本配对机制

FerretDB 与 DocumentDB 扩展存在严格的一一配对关系,这是 2.x 架构最核心的运维约束:

FerretDB 版本配对 DocumentDB 版本
v2.7.0v0.107.0-ferretdb-2.7.0
v2.5.0v0.106.0-ferretdb-2.5.0

官方安装文档明确要求:升级 FerretDB 前必须先升级至匹配版本的 DocumentDB 包,并称"遵循 DocumentDB 升级指南是升级成功的关键"。

3.3 分发形态

  • Linux 软件包:.deb(Debian/Ubuntu)与 .rpm(RHEL 系)包,DEB 包内置 systemd 单元;.deb 分生产包(ferretdb.deb)与调试包(ferretdb-dev.deb,含明显降速的调试特性,禁止用于生产);
  • 独立二进制与源码构建:官方建议用户直接使用官方发布的二进制与软件包,而非自行构建;
  • Go 库嵌入:提供 Go library package,可将 FerretDB 嵌入应用程序进程;
  • 托管服务:官方列出 FerretDB Cloud,以及 Civo、Tembo、Elestio、Cozystack 等第三方托管。

四、功能特性

4.1 MongoDB 协议兼容

  • 支持 MongoDB 5.0+ 线上协议,可直接复用既有 MongoDB 驱动与应用;
  • 官方维护"已测试兼容应用"清单(compatible applications)与公开路线图;
  • 使用与 MongoDB 相同的错误名称与错误码。

4.2 命令支持面(官方兼容矩阵节选)

以官方 Compatibility 页(v2.7 文档)为准,管理命令支持情况节选:

命令状态
create / createIndexes / listCollections / listDatabases / listIndexes支持
drop / dropDatabase / dropIndexes / renameCollection支持
collMod / compact / reIndex / currentOp / getParameter / killCursors支持
aggregate / count / distinct(聚合类)支持
cloneCollectionAsCapped / convertToCapped / dropConnections尚未实现
killOp / logRotate / setParameter / shutdown尚未实现

4.3 可观测性

  • 内置 Prometheus 指标暴露与 OpenTelemetry 追踪;官方在 v2.5.0 与 v2.7.0 发行说明中两次强调指标命名处于调整期、"尚不稳定",升级时需关注 breaking changes;
  • 提供日志获取指南(getting logs)用于运维排障。

4.4 新兴集成

  • v2.7.0 起提供基础 MCP server 支持,面向 AI 工具链接入场景;
  • 内置遥测(telemetry)机制,官方建议开启以获取新版本通知。

五、快速上手

以下步骤引自官方安装文档《DEB package》(https://docs.ferretdb.io/installation/ferretdb/deb/ ),本文未做本地实测:

  1. 准备存储引擎:FerretDB 不会自动安装 PostgreSQL 与 DocumentDB 扩展,需先按官方《DocumentDB extension DEB package installation guide》完成两者的安装;
  2. 下载软件包:从 GitHub Releases 发行页下载与发行说明匹配的 .deb 包(生产场景推荐 ferretdb.deb;调试场景使用带 -dev 后缀的包),重命名为 ferretdb.deb;
  3. 安装并验证:
sudo dpkg -i ferretdb.deb
ferretdb --version
  1. 启动管理:.deb 包自带 systemd 单元,安装后自动启动 FerretDB,systemd 配置方法见官方《systemd configuration guide》;
  2. 客户端连接:使用 MongoDB 连接串 mongodb://<username>:<password>@127.0.0.1:27017/,通过 mongosh 或任何 MongoDB 5.0+ 客户端/驱动连接;
  3. 版本升级:先升级 DocumentDB 到与新版本匹配的包,再安装新 .deb 包并以 ferretdb --version 验证。

更快捷的评估路径:官方文档另提供 Evaluation setup guide(评估环境指南),适合快速体验;正式部署请遵循上述安装指南。

六、适用场景与限制

6.1 适用场景

  • 团队需要 MongoDB 驱动生态的易用性,但 SSPL 许可构成法务障碍(开源项目、早期商业项目);
  • 已有成熟的 PostgreSQL 运维、备份与监控体系,希望文档数据库复用该体系;
  • 需要将 FerretDB 以 Go 库形式嵌入应用,或选用托管服务快速起步;
  • MongoDB 侧仅使用常规 CRUD、索引与聚合能力,未深度依赖未实现的管理命令。

6.2 已知限制(引自官方 Compatibility 页)

  • 错误消息文本可能与 MongoDB 不完全一致(错误名与错误码保持一致);官方明确表示此项不计划修改;
  • 集合名必须为合法 UTF-8 字符串,MongoDB 允许的非法 UTF-8 集合名在 FerretDB 不受支持;
  • 部分管理命令尚未实现(见 4.2 节矩阵中"尚未实现"条目);
  • 除上述两类官方声明外,其余行为差异官方均按问题(bug)对待并纳入公开路线图;
  • 运行依赖 DocumentDB 扩展且版本必须严格配对,升级顺序敏感;
  • Prometheus 指标与 OpenTelemetry 追踪命名尚不稳定,监控告警配置需随版本核对;
  • 官方提示:上生产前请验证其是否适合你的应用。

七、同类选型对比

对比对象选取 MongoDB、PostgreSQL(JSONB 文档能力)与 Apache CouchDB,均为可自建的文档型数据库方案。下表数据查询日期均为 2026-10-18,stars 数经 ungh.cc(GitHub 仓库元数据只读副本)查询,发行信息来自各项目官方发行渠道;查询渠道受限未取到的数据如实标注"官方未公布"。

维度FerretDB 2.7.0MongoDB 9.0PostgreSQL 18 + JSONBApache CouchDB 3.5
开源许可Apache-2.0SSPL-1.0PostgreSQL License(类 BSD/MIT)Apache-2.0
GitHub stars11,101官方未公布(查询渠道受限)官方未公布(查询渠道受限)官方未公布(查询渠道受限)
最近发版v2.7.0(2025-11-10)r9.0.4(2026-10-14,GitHub Releases)18.6(官方源码目录在列最新)3.5.3(2026-10-10,GitHub Releases)
版本节奏2025 年内 6/7/8/11 月均有小版本发行,约 1-2 月一版9.0.2 与 9.0.4 补丁同日发布(2026-10-14),补丁节奏快小版本按季度滚动(18.2 → 18.6)3.5.x 稳定线滚动维护
兼容矩阵MongoDB 5.0+ 驱动/应用;命令为 MongoDB 子集;依赖 PostgreSQL + DocumentDB自家驱动与 Atlas 全生态,功能最完整JSONB 文档存取 + 全语言 PostgreSQL 驱动,需 SQL 侧自建查询CouchDB HTTP API 与复制协议生态
官方文档docs.ferretdb.iomongodb.com/docspostgresql.org/docsdocs.couchdb.apache.org

选型建议:若团队必须使用 MongoDB 驱动与命令习惯、又要求许可证彻底开源,FerretDB 2.7.0 是当前最直接的替代路径(前提是接受 PostgreSQL + DocumentDB 的版本配对约束与命令子集);许可无忧且需要完整 MongoDB 能力时仍应直选 MongoDB;若业务查询可 SQL 化、无 MongoDB 驱动绑定,PostgreSQL JSONB 的成熟度与生态更稳;仅当多端复制同步是硬需求时再考虑 CouchDB。

八、参考链接

  1. FerretDB 官方文档首页(Introduction):https://docs.ferretdb.io/
  2. 兼容性与已知差异:https://docs.ferretdb.io/migration/compatibility/
  3. DEB 包安装指南:https://docs.ferretdb.io/installation/ferretdb/deb/
  4. GitHub 仓库(README、LICENSE、架构图):https://github.com/FerretDB/FerretDB
  5. v2.7.0 发行说明:https://github.com/FerretDB/FerretDB/releases/tag/v2.7.0
  6. DocumentDB 扩展:https://github.com/documentdb/documentdb
  7. 官网与托管服务:https://www.ferretdb.com/
  8. Go 库包:https://pkg.go.dev/github.com/FerretDB/FerretDB/v2/ferretdb