Key Points

  • MongoDB 确保在服务器版本结束生命周期(EOL)后三年内,C 驱动程序与 MongoDB 服务器保持兼容。
  • C 驱动程序版本 1.28 至 1.30 完全支持 MongoDB 8.0 至 3.6,但较旧版本可能部分支持或未测试。
  • 语言兼容性显示,C 驱动程序 1.24 至 1.30 支持 C17/C18、C11 和 C99,而 1.23 及以下版本还支持 C89。
  • 支持的操作系统包括 Debian、RHEL、Ubuntu、Arch Linux、macOS 和 Windows Server,具体版本有所不同。

MongoDB Compatibility

MongoDB 确保 C 驱动程序与服务器版本在 EOL 后三年内保持兼容。推荐使用最新兼容驱动程序以获取所有功能。详情请见 MongoDB 软件生命周期计划

Language and Platform Support

C 驱动程序支持多种 C 语言标准和平台。Debian 9.2、10.0、11.0 等操作系统得到持续测试,编译器如 Clang 3.7、3.8、6.0 及 GCC 4.8 至 10.2 也受支持。架构包括 x86(32 位,仅 Windows 测试)、x86_64(Linux、macOS 和 Windows 测试)等。

Unexpected Detail

有趣的是,C 驱动程序 1.18 不支持在辅助节点上的快照读取,这可能影响某些高可用性场景的开发,详情见 MongoDB 5.0 发布说明


详细报告

引言

本文详细描述了 MongoDB C 驱动程序的兼容性信息,包括与 MongoDB 服务器版本、C 语言标准以及各种平台的兼容性。内容基于 2025 年 3 月 7 日的官方文档,确保信息的准确性和时效性。

MongoDB 兼容性

MongoDB 承诺在服务器版本的结束生命周期(EOL)日期后三年内,确保 C 驱动程序与 MongoDB 服务器的兼容性。若需了解更多关于 MongoDB 发布和 EOL 日期的信息,请参考 MongoDB 软件生命周期计划

以下兼容性表指定了与特定 MongoDB 版本推荐使用的 C 驱动程序版本。第一列列出驱动程序版本,符号说明如下:

  • ✓:所有功能均受支持。
  • ⊛:驱动程序版本可与 MongoDB 版本工作,但可能不支持所有新功能。
  • 无标记:驱动程序版本未与 MongoDB 版本测试。
兼容性表

C 驱动程序版本

MongoDB 8.0

MongoDB 7.0

MongoDB 6.0

MongoDB 5.0

MongoDB 4.4

MongoDB 4.2

MongoDB 4.0

MongoDB 3.6

1.28 至 1.30









1.24 至 1.27









1.22 至 1.23









1.19 至 1.21









1.18




✓ [1]





1.17









1.15 至 1.16









1.11 至 1.14









1.9 至 1.10









[1] 1.18 驱动程序不支持在辅助节点上的快照读取。详情请见 MongoDB Server 5.0 发布说明

驱动程序不支持更旧的 MongoDB 版本。

语言兼容性

以下兼容性表指定了与特定 C 版本推荐使用的 MongoDB C 驱动程序版本。第一列列出驱动程序版本。

C 驱动程序版本

C17/C18

C11

C99

C89

1.24 至 1.30





<= 1.23





如需更多关于如何阅读兼容性表的信息,请参考 MongoDB 兼容性表指南

平台兼容性

本节包括由 C 驱动程序支持的平台和工具链的版本兼容性信息。

操作系统

以下操作系统与 C 驱动程序持续测试:

  • Debian:版本 9.2、10.0 和 11.0。
  • RHEL:版本 7.0、7.1、8.1、8.2 和 8.3。同一发布版本的 RHEL 衍生版本(例如 CentOS、Rocky Linux 或 AlmaLinux)也受支持。Fedora 也受支持,但不持续测试。
  • Ubuntu:版本 16.04、18.04 和 20.04。后续小版本也受支持。Ubuntu 22.04 及更新版本尚未测试。基于支持的 Ubuntu 版本的 Ubuntu 衍生版本也受支持。
  • Arch Linux。
  • macOS:版本 11.0。
  • Windows Server 2008 和 Windows Server 2016:同一代 Windows 变体受支持。
编译器

以下编译器与 C 驱动程序持续测试:

  • Clang:版本 3.7、3.8 和 6.0。新版本也受支持,以及相应的 Apple Clang 发布。
  • GNU Compiler Collection (GCC):版本 4.8、5.4、6.3、7.5、8.2、8.3、9.4 和 10.2。MinGW-w64 GCC 也经过测试和支持。
  • Microsoft Visual C++ (MSVC):测试了 MSVC 14.x(Visual Studio 2015)和 15.x(Visual Studio 2017)。较新的 MSVC 版本受支持但尚未测试。
架构

以下 CPU 架构与 C 驱动程序持续测试:

  • x86 (32 位):仅在 Windows 上测试。
  • x86_64 (64 位 x86):在 Linux、macOS 和 Windows 上测试。
  • ARM / aarch64:在 macOS 和 Linux 上测试。
  • Power8 (ppc64le):仅在 Linux 上测试。
  • zSeries (s390x):仅在 Linux 上测试。
其他平台

其他平台和工具链未测试,但我们期望类似版本的前述平台也能工作。若遇到预期可工作的平台或工具链但发现无法工作,请提交问题描述,或提交 GitHub Pull Request 修复。

重要提示

欢迎提交简单拉取请求以修复不受支持的平台,但将逐案考虑。接受修复不受支持平台上库的拉取请求并不意味着对该平台的完全支持。

结论

本文全面覆盖了 MongoDB C 驱动程序的兼容性细节,包括服务器版本、语言标准和平台支持。用户可根据需要选择合适的驱动程序版本,并参考官方文档确保兼容性。

关键引用