文档菜单
文档首页
/ / /
Ruby MongoDB 驱动程序
/

驱动程序兼容性

本页内容

  • MongoDB 兼容性
  • Ruby 兼容性
  • Rails/ActiveSupport 兼容性
  • TLS/SSL 兼容性
  • Atlas 兼容性
  • mongo_kerberos 兼容性
  • JRuby 和 Kerberos 认证
  • JRuby 和 TLS 连接

以下兼容性表格指定了用于特定 MongoDB 版本的 MongoDB Ruby 驱动程序的推荐版本。除非特别说明,否则指定的驱动程序版本将公开或利用相应服务器版本中添加的功能。

MongoDB 服务器版本通常是向后兼容的,这意味着某个版本的驱动程序通常可以与服务器的新版本一起工作,但可能无法利用服务器新版本中发布的功能。

重要

MongoDB 在服务器版本的生命周期结束(EOL)日期后的三年内确保 MongoDB 服务器和驱动程序之间的兼容性。有关 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] [3]
2.9
2.8
2.7
2.6
2.5
[1] 自驱动程序版本 2.14 起实现了 OCSP 验证。
[2] 自驱动程序版本 2.11 起实现了分片拓扑中的 SRV 记录轮询。
[3](1, 2) 自驱动程序版本 2.12 起实现了客户端加密。

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

以下兼容性表格指定了 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 的旧版本。

Ruby驱动程序不依赖于ActiveSupport。然而,当应用程序使用ActiveSupport或Ruby on Rails时,它必须加载驱动程序的ActiveSupport兼容性代码,以确保时间序列化等行为正确

require 'mongo'
require 'mongo/active_support'

使用Mongoid 7.0.6或更高版本的应用程序不需要显式加载驱动程序的ActiveSupport代码,因为Mongoid会自动加载。

驱动程序将使用底层Ruby支持的协议openssl 扩展。反过来,openssl 扩展通常暴露操作系统OpenSSL库中存在的功能。

行业最佳实践和一些法规要求使用TLS 1.1或更高版本。某些操作系统或版本可能不提供足够的OpenSSL版本来支持这些TLS版本。

Users of macOS older than 10.13 (High Sierra) will need to install Ruby from rvm, homebrew, macports, or another similar source. See installation information on ruby-lang.org for more options.

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版本及其安全影响的信息 这里

驱动程序版本 2.6.1 或更高版本在使用MongoDB Atlas时推荐,因为这个版本在使用TLS连接时有显著的性能改进,并且所有Atlas连接都使用TLS。

当在JRuby上运行并连接到Atlas免费层时,需要驱动程序版本2.6.4或更高版本以及Java 8或更高版本。

以下兼容性表指定了与驱动程序特定版本一起使用的mongo_kerberos 库的版本。

Ruby 驱动程序
mongo_kerberos  2.1
2.7 - 2.19

如果使用mongo_kerberos gem进行JRuby的Kerberos身份验证,则会将JVM系统属性“sun.security.jgss.native”设置为“true”,以便使用TGTs的系统缓存(例如,使用kinit获得的TGTs)。此设置还会影响JGSS库的任何其他使用,这意味着系统缓存中的任何TGTs都可用于获取Kerberos凭据。

由于 JRuby 的限制

  • 不支持 ECDSA 服务器证书。

  • 不执行 OCSP 端点检查。

返回

安装