驱动程序兼容性
在此页面上
MongoDB 兼容性
以下兼容性表指定了与特定版本的 MongoDB 一起使用的 MongoDB Ruby 驱动程序的推荐版本。除非另有说明,否则指定的驱动程序版本会公开或利用相应服务器版本中添加的功能。
MongoDB 服务器版本通常向后兼容,这意味着特定版本的驱动程序通常可与较新版本的服务器配合使用,但可能无法利用较新版本服务器中发布的功能。
重要
在服务器版本生命周期结束 (EOL) 日期之后的三年内,MongoDB 将确保 MongoDB Server 与驱动程序兼容。要了解有关 MongoDB 版本和 EOL 日期的更多信息,请参阅 MongoDB 软件生命周期时间表。。
第一列列出了驱动程序版本。其他列中的“D”表示已弃用对该 MongoDB 版本的支持,并将在未来的驱动程序版本中删除。
Ruby 驱动程序 | MongoDB 8 。 0 | MongoDB 7.0 | MongoDB 6.0 | MongoDB 5.0 | MongoDB 4.4 | MongoDB 4.2 | MongoDB 4.0 | MongoDB 3.6 | MongoDB 3.4 | MongoDB 3.2 | MongoDB 3.0 | MongoDB 2.6 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2.21 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
2.20 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
2.19 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
2.18 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
2.17 | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
2.16 | ✓ | ✓ | ✓ | ✓ | ✓ | D | D | D | D | |||
2.15 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
2.14 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
2.13 | ✓ [1] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
2.12 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
2.11 | ✓ [3] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
2.10 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
2.9 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
2.8 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
2.7 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
2.6 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
2.5 | ✓ | ✓ | ✓ | ✓ | ✓ |
[1] | 从驱动程序版本2.14开始实施 OCSP 验证。 |
[2] | 从驱动程序版本2开始,实施分片拓扑中 SRV 记录的轮询。 11 。 |
[3] | ( 1 , 2 )从驱动程序版本 2.12 开始实施客户端加密。 |
此驱动程序不支持早期版本的 MongoDB。
Ruby 兼容性
以下兼容性表指定了各个版本的 MongoDB Ruby 驱动程序支持的 Ruby 版本。
第一列列出了驱动程序版本。 列中的“D”表示已弃用对该 Ruby 版本的支持。
Ruby 驱动程序 | Ruby 3.2 | Ruby 3.1 | Ruby 3.0 | Ruby 2.7 | Ruby 2.6 | Ruby 2.5 | Ruby 2.4 | Ruby 2.3 | Ruby 2.2 | Ruby 2.1 | Ruby 2.0 | Ruby 1.9 | JRuby 9.4 | JRuby 9.3 | JRuby 9.2 | JRuby 9.1 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2.20 到 2.21 | ✓ | ✓ | ✓ | D | ✓ | ✓ | D | |||||||||
2.19 | ✓ | ✓ | ✓ | ✓ | D | D | ✓ | ✓ | ||||||||
2.18 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||||
2.17 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||||||
2.16 | ✓ | ✓ | ✓ | ✓ | D | ✓ | ||||||||||
2.15 | ✓ | ✓ | ✓ | ✓ | D | D | ✓ | |||||||||
2.14 | ✓ | ✓ | ✓ | D | D | ✓ | ||||||||||
2.13 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||||||
2.12 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||||||
2.11 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||||||
2.10 | ✓ | ✓ | ✓ | ✓ | ✓ | D | D | D | D | ✓ | ✓ | |||||
2.9 | ✓ | ✓ | ✓ | ✓ | D | D | D | D | ✓ | ✓ | ||||||
2.8 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
2.7 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
2.6 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
该驱动程序不支持旧版本的 Ruby。
Rails/ActiveSupport 兼容性
Ruby 驱动程序不依赖于 ActiveSupport。但是,当应用程序使用 ActiveSupport 或 Ruby on Rails 时,必须加载驱动程序的 ActiveSupport 兼容性代码才能确保时间序列化等行为的正确性:
require 'mongo' require 'mongo/active_support'
使用 Mongoid 7的应用程序。 0 。 6或更新版本不需要显式加载驱动程序的 ActiveSupport 代码,因为 Mongoid 会自动执行此操作。
TLS/SSL 兼容性
驱动程序将利用底层 Ruby openssl
扩展支持的协议。 反过来, openssl
扩展通常会公开操作系统的 OpenSSL 库中存在的功能。
行业最佳实践和某些法规要求使用 TLS 1.1或更高版本。 某些操作系统或版本可能无法提供足够新的 OpenSSL 版本,无法支持这些 TLS 版本。
早于10.13 (High Sierra) 的 macOS 用户需要从 RVM 安装 Ruby , 自制程序 , macports ,或其他类似来源。请参阅 ruby-lang.org 上的安装信息 了解更多选项。
Linux 或其他非 macOS Unix 的用户可以按以下方式检查其 OpenSSL 版本:
openssl version
如果版本号小于1 。 0 。 1对 TLS 的支持1 . 1或更高版本不可用。请联系您的操作系统供应商以获取解决方案或升级到较新的发行版。
您可以通过执行以下命令来检查 Ruby 解释器:
ruby -e "require 'net/http'; require 'json'; puts JSON.parse(Net::HTTP.get(URI('https://www.howsmyssl.com/a/check')))['tls_version']"
您应该会看到“TLS 1 .X”,其中 X >= 1 。
您可以 在此处 详细了解 TLS 版本及其安全隐患 。
Atlas 兼容性
驱动程序版本2.6.1 使用 MongoDB Atlas 时,建议使用 MongoDB Atlas 或更高版本,因为此版本在使用 TLS 连接时具有显着的性能改进,并且所有 Atlas 连接都使用 TLS。
在 JRuby 上运行并连接到 Atlas 免费套餐时, 驱动程序版本为 或更高版本以及 2.6.4Java8 或更高版本。
mongo_kerberos
兼容性
以下兼容性表指定了与特定版本的驱动程序一起使用的 mongo_kerberos 库的版本。
Ruby 驱动程序 | mongo_kerberos 2.1 |
---|---|
2.7 - 2.19 | ✓ |
JRuby 和 Kerberos 身份验证
如果mongo_kerberos
gem 用于通过 JRuby 进行 Kerberos 身份验证,则 JVM 系统属性 "sun.security.jgss.native" 将设置为 "true",以便于使用 TGT 的系统缓存(例如 通过kinit
获得的 TGT)。 JGSS 库的任何其他使用也会受此设置的影响,这意味着系统缓存中的任何 TGT 也可用于获取 Kerberos 档案。
JRuby 和 TLS 连接
由于 JRuby 限制:
不支持 ECDSA 服务器证书。
不执行 OCSP 端点检查。