类:Mongo::URI
- 继承:
-
对象
- 对象
- Mongo::URI
- 包括:
- Address::Validator , Loggable
- 定义于:
- lib/ Mongo/uri.rb 、
lib/ Mongo/uri/srv_protocol.rb、
lib/ Mongo/uri/options_mapper.rb
Overview
URI 类为用户提供了一种解析连接MongoDB string格式规范中定义的 uri 的方法。
https://www.mongodb.com/zh-cn/docs/manual/reference/connection-string/
在命名空间下定义
类: OptionsMapper , SRVProtocol
常量摘要折叠
- SCHEME =
已弃用。
将在3.0中删除。
MongoDB连接string模式。
'mongodb://'- MONGODB_SCHEME =
MongoDB连接string方案根。
'mongodb'- MONGODB_SRV_SCHEME =
MongoDB srv 协议连接string方案根。
'mongodb+srv'- INVALID_SCHEME =
已弃用。
无效方案的错误详细信息。
"无效的方案。方案必须是 ' #{ MONGODB_SCHEME } ' 或 ' #{ MONGODB_SRV_SCHEME } ' "- FORMAT =
MongoDB URI 格式规范。
' MongoDB ://[username:password@]host1[:port1][,host2[:port2] ' + ',...[,hostN[:portN]]][/[数据库][?options]]'
- 帮助 =
MongoDB URI(连接string )文档URL
'https://www.mongodb.com/zh-cn/docs/manual/reference/connection-string/'- 不安全 =
必须进行 urlencoded 的不安全字符。
%r{[:/@]}- PERCENT_CHAR =
必须在用户信用中编码的百分号。
/%/- UNIX_SOCKET =
Unix 套接字后缀。
/.sock/- HOST_DELIM =
分隔主机的字符。
','- HOST_PORT_DELIM =
分隔主机和端口的字符。
':'- DATABASE_DELIM =
分隔数据库的字符。
'/'- URI_OPTS_DELIM =
字符分隔选项。
'?'- INDIV_URI_OPTS_DELIM =
已弃用。
分隔多个选项的字符。
'和'- URI_OPTS_VALUE_DELIM =
分隔选项及其值的字符。
'='- AUTH_USER_PWD_DELIM =
分隔用户名和密码的字符。
':'- AUTH_DELIM =
分隔身份验证档案的字符。
'@'- SCHEME_DELIM =
模式分隔符。
'://'- INVALID_OPTS_VALUE_DELIM =
无效选项格式的错误详细信息。
' 选项及其值必须分隔 ' + " by ' #{ URI_OPTS_VALUE_DELIM } ' "
- UNESCAPED_USER_PWD =
非 urlencoded 用户名或密码的错误详细信息。
'用户名和密码必须进行 urlencoded。'- UNESCAPED_UNIX_SOCKET =
非 urlencoded unix 套接字路径的错误详细信息。
'UNIX 域套接字必须进行 urlencoded。'- UNESCAPED_DATABASE =
非 urlencoded 身份验证数据库名称的错误详细信息。
'身份验证数据库必须进行 urlencoded。'- INVALID_OPTS_DELIM =
提供不带数据库分隔符的选项的错误详细信息。
" 如果指定了选项,则必须存在 数据库分隔符 ' #{ DATABASE_DELIM } '。 "- INVALID_HOST =
缺少主机的错误详细信息。
'缺少托管;必须至少提供一个。'- INVALID_PORT =
无效端口的错误详细信息。
'端口无效。端口必须是大于 0 且小于 65536 的整数'- READ_MODE_MAP =
URI 读取偏好模式到 Ruby 驱动程序读取偏好模式的映射
{ ' primary ' => :primary, ' primarypreferred ' => :primary_preferred, ' secondary ' => :secondary, ' secondarypreferred ' => :secondary_preferred, ' nearest ' => :nearest }.冻结
- AUTH_MECH_MAP =
URI 身份验证机制到 Ruby 驱动程序机制的映射
{ ' GSSAPI ' => :gssapi, ' MONGODB-AWS ' => :aws, # MONGODB-CR 已弃用,并将在驱动程序版本3.0中删除 'MONGODB-CR' => :mongodb_cr, ' MONGODB-X 509 ' => :mongodb_x 509, ' PLAIN ' => :plain, ' SCRAM-SHA- 1 ' => :scram, ' SCRAM-SHA- 256 ' => :scram 256, }.冻结
- SERVER_MONITORING_MODES =
serverMonitoringMode URI 选项的有效值。
%w[流 轮询 auto].冻结
- REPEATABLE_OPTIONS =
允许在 uri 中多次出现的选项。
为了遵循 URI 选项规范要求“tls”和“ssl”的所有实例都具有相同的值,我们需要追踪为这些选项传入的所有值。假设它们不冲突,它们将在解析 URI 后立即压缩为单个值。
%i[tag_sets ssl]
Loggable中包含的常量
实例属性摘要折叠
-
# options ⇒ 对象
只读
uri 解析器对象选项。
-
#servers ⇒ 对象
只读
uri 中指定的服务器。
-
# uri_options ⇒ 对象
只读
Mongo::Options::Redacted 列出了 uri 中指定的选项。
类方法摘要折叠
-
。 get (string, opts = {}) ⇒ URI, URI::SRVProtocol
获取 URI 对象或 SRVProtocol URI 对象。
实例方法摘要折叠
-
# client_options ⇒ Mongo::Options::Redacted
获取在实例化时需要传递给 Mongo::客户端 的选项哈希,因此我们不必在点合并凭证和数据库- 这里只有一个点。
-
#凭证⇒ 哈希
获取 URI 中提供的档案。
-
#数据库⇒ string
获取 URI 中提供的数据库。
-
#initialize (string, options = {}) ⇒ URI
构造函数
从提供的string创建新的 uri。
- # srv_records ⇒ 对象
-
# to_s ⇒ string
获取string形式的 uri。
Address::Validator中包含的方法
Loggable中包含的方法
#log_debug 、 #log_error 、 #log_ Fatal 、 #log_info 、 #log_warn 、 #logger
构造函数详情
#initialize (string, options = {}) ⇒ URI
从提供的string创建新的 uri。
282 283 284 285 286 287 288 289 290 291 292 293 294 295 |
# File 'lib/ Mongo/uri.rb', 第 282 行 def 初始化(字符串, = {}) 提高 错误::InvalidURI.new(字符串, ' URI 必须是string ,而不是 nil。 ') 除非 字符串 提高 错误::InvalidURI.new(字符串, '无法解析空 URI。 ') if 字符串.空? @string = 字符串 @options = parsed_scheme, _, 剩余 = 字符串.分区(SCHEME_DELIM) 除非 parsed_scheme == 有关 Raise_invalid_error!("无效的模式 ' #{ parsed_scheme } '。模式必须是 ' #{ MONGODB_SCHEME } '。使用 URI#get 解析 SRV URI。 ") end Raise_invalid_error!(' URI 中没有主机') if 剩余.空? parse!(剩余) end |
实例属性详细信息
# options ⇒对象(只读)
uri 解析器对象选项。
37 38 39 |
# File 'lib/ Mongo/uri.rb', 第 37 行 def @options end |
#servers ⇒对象(只读)
uri 中指定的服务器。
47 48 49 |
# File 'lib/ Mongo/uri.rb', 第 47 行 def 服务器 @servers end |
# uri_options ⇒对象(只读)
Mongo::Options::Redacted 列出了 uri 中指定的选项。
42 43 44 |
# File 'lib/ Mongo/uri.rb', 第 42 行 def @uri_options end |
类方法详细信息
。 get (string, opts = {}) ⇒ URI , URI::SRVProtocol
获取 URI 对象或 SRVProtocol URI 对象。
231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 |
# File 'lib/ Mongo/uri.rb', 第 231 行 def self.获取(字符串, opts = {}) 提高 错误::InvalidURI.new(字符串, ' URI 必须是string ,而不是 nil。 ') 除非 字符串 提高 错误::InvalidURI.new(字符串, '无法解析空 URI。 ') if 字符串.空? 有关, = 字符串.分区(SCHEME_DELIM) 案例 有关 when MONGODB_SCHEME URI.new(字符串, opts) when MONGODB_SRV_SCHEME SRVProtocol.new(字符串, opts) else 提高 错误::InvalidURI.new(字符串, " 无效方案 ' # { { schema } } '。方案必须是 ' #{ MONGODB_SCHEME } ' 或 ' #{ MONGODB_SRV_SCHEME } ' ") end end |
实例方法详细信息
# client_options ⇒ Mongo::Options::Redacted
获取在实例化时需要传递给 Mongo::客户端 的选项哈希,因此我们不必在点合并凭证和数据库- 这里只有一个点。
257 258 259 260 261 262 263 |
# File 'lib/ Mongo/uri.rb', 第 257 行 def opts = .点击 do |opts| opts[:database] = @database if @database end @user ? opts.合并(merge)(凭证) : opts end |
#凭证⇒哈希
获取 URI 中提供的档案。
307 308 309 |
# File 'lib/ Mongo/uri.rb', 第 307 行 def 凭证 { 用户: @user, 密码: @password } end |
#数据库⇒ string
获取 URI 中提供的数据库。
319 320 321 |
# File 'lib/ Mongo/uri.rb', 第 319 行 def database @database || Database::ADMIN end |
# srv_records ⇒对象
265 266 267 |
# File 'lib/ Mongo/uri.rb', 第 265 行 def srv_records nil end |
# to_s ⇒ string
获取string形式的 uri。
329 330 331 |
# File 'lib/ Mongo/uri.rb', 第 329 行 def to_s reconstruct_uri end |