类:Mongo::Server::Description::Features

继承:
对象
  • 对象
显示全部
定义于:
build/Ruby-driver-v 2.19 /lib/mongo/server/description/features.rb

Overview

围绕特定服务器支持的功能定义行为。

由于:

  • 2.0.0

常量摘要折叠

MAPPINGS =

功能列表及其所在的传输协议版本。

协议版本映射到服务器版本,如下所示:

  • 2 => 2.6

  • 3 => 3.0

  • 4 => 3.2

  • 5 => 3.4

  • 6 => 3.6

  • 7 => 4.0

  • 8 => 4.2

  • 9 => 4.4

  • 13 => 5.0

  • 14 => 5.1

  • 17 => 6.0

由于:

  • 2.0.0

{
  merge_out_on_secondary: 13,
  get_more_comment: 9,
  retryable_write_error_label: 9,
  commit_quorum: 9,
  # 早于 4.2 的MongoDB Server版本无法可靠地验证选项
  # 由客户端在 findAndModify 操作期间提供,要求
  # 驱动程序在提供这些选项时引发客户端错误。
  find_and_modify_option_validation: 8,
  事务: 7,
  Scram_sha_ 256 : 7,
  array_filters: 6,
  OP_MSG: 6,
  会话: 6,
  排序规则: 5,
  max_staleness: 5,
  # 早于 3.4 的MongoDB Server版本无法可靠地验证选项
  # 由客户端在更新/删除操作期间提供,需要
  # 驱动程序在提供这些选项时引发客户端错误。
  update_delete_option_validation: 5,
  find_command: 4,
  list_collections: 3,
  list_indexes: 3,
  Scram_sha_ 1 : 3,
  write_command: 2,
  users_info: 2,
}.冻结
SERVER_TOO_OLD =

如果服务器对于此版本的驱动程序来说太旧,则会出现错误消息。

由于:

  • 2.5.0

" (%s) 的MongoDB Server报告网络版本 (%s),但此版本的Ruby驱动程序" +
"至少需要 (%s)。"
DRIVER_TOO_OLD =

如果驾驶员对于服务器版本来说太旧,则会出现错误消息。

由于:

  • 2.5.0

" (%s) 的服务器需要传输版本 (%s),但此版本的Ruby驾驶员" +
"最多仅支持 (%s)。"
DRIVER_WIRE_VERSIONS =

此版本的驾驶员支持的传输协议版本。

由于:

  • 2.0.0

(6..21).冻结

实例属性摘要折叠

实例方法摘要折叠

构造函数详情

#initialize (server_wire_versions,address = nil) ⇒功能

初始化功能。

例子:

初始化功能。

Features.new(0..3)

参数:

  • server_wire_versions (范围)

    服务器支持传输版本。

由于:

  • 2.0.0



117
118
119
120
121
122
123
124
125
126
127
128
129
130
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 服务器/description/features.rb', 第117行

def 初始化(server_wire_versions, 地址 = nil)
  if server_wire_versions.min.nil?
    提高 ArgumentError, " server_wire_versions's min is nil "
  end
  if server_wire_versions.Max.nil?
    提高 ArgumentError, " server_wire_versions's max is nil "
  end
  @server_wire_versions = server_wire_versions
  @address = 地址

  if mongo::Lint.已启用?
    冻结
  end
end

实例属性详细信息

# server_wire_versions范围(只读)

返回 server_wire_versions 服务器支持的传输版本。

返回:

  • (范围)

    server_wire_versions 服务器支持的传输版本。

由于:

  • 2.0.0



106
107
108
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 服务器/description/features.rb', 第106行

def server_wire_versions
  @server_wire_versions
end

实例方法详细信息

# check_driver_support!对象

检查驾驶员支持的连线之间是否存在重叠

version range and the server wire version range.

例子:

验证传输版本重叠。

features.check_driver_support!

引发:

由于:

  • 2.5.1



142
143
144
145
146
147
148
149
150
151
152
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 服务器/description/features.rb', 第142行

def check_driver_support!
  if DRIVER_WIRE_VERSIONS.min > @server_wire_versions.Max
    提高 错误::不支持的功能.new(SERVER_TOO_OLD % [@address,
                                                           @server_wire_versions.Max,
                                                           DRIVER_WIRE_VERSIONS.min])
  elsif DRIVER_WIRE_VERSIONS.Max < @server_wire_versions.min
    提高 错误::不支持的功能.new(DRIVER_TOO_OLD % [@address,
                                                           @server_wire_versions.min,
                                                           DRIVER_WIRE_VERSIONS.Max])
  end
end