Classe: Mongo::URI

Herda:
Objeto
  • Objeto
mostrar tudo
Inclui:
Endereço::Validator, Loggable
Definido em:
lib/mongo/uri.rb,
lib/mongo/uri/srv_protocol.rb,
lib/mongo/uri/options_mapper.rb

Visão geral

A classe URI fornece uma maneira de os usuários analisarem o uri do MongoDB conforme definido na especificação do formato da connection string.

https://www.mongodb.com/pt-br/docs/manual/reference/connection-string/

Exemplos:

Use a string uri para fazer uma conexão com o cliente .

uri = Mongo::URI.new('mongodb://localhost:27017')
client = Mongo::Client.new(uri.servers, uri.options)
client.(uri.credentials)
client[uri.database]

Desde:

  • 2.0.0

Definido sob namespace

Classes: OptionsMapper, SRVProtocol

Colapsode resumo constante

ESQUEMA =
Obsoleto.

Será removido em 3.0.

O MongoDB string esquema de connection do .

Desde:

  • 2.0.0

'mongodb://'
MONGODB_SCHEME =

A MongoDB raiz do esquema string de connection do .

Desde:

  • 2.5.0

'mongodb'
MONGODB_SRV_SCHEME =

A MongoDB string raiz do esquema de connection do protocolo srv.

Desde:

  • 2.5.0

'MongoDB+srv'
INVALID_SCHEME =
Obsoleto.

Detalhes de erro para um esquema inválido.

Desde:

  • 2.1.0

"Esquema inválido. O esquema deve ser '#{MONGODB_SCHEME}' ou '#{MONGODB_SRV_SCHEME}'"
FORMATO =

Especificação de formato URI MongoDB.

Desde:

  • 2.0.0

'MongoDB://[username:password@]host1[:port1][,host2[:port2]' +
',...[,hostN[:portN]]][/[banco de dados][?options]]'
AJUDA =

URL de documentação do MongoDB URI (connection string)

Desde:

  • 2.0.0

'https://www.mongodb.com/pt-br/docs/manual/reference/connection-string/'
NÃO SEGURO =

Caracteres não seguros que devem ser codificados em URL.

Desde:

  • 2.1.0

%r{[:/@]}
PERCENT_CHAR =

Sinal de porcentagem que deve ser codificado nas credenciais do usuário.

Desde:

  • 2.5.1

/%/
UNIX_SOCKET =

Sufixo de soquete Unix.

Desde:

  • 2.1.0

/.sock/
HOST_DELIM =

Os hosts delimitadores de caracteres.

Desde:

  • 2.1.0

','
HOST_PORT_DELIM =

O caractere que separa um host e uma porta.

Desde:

  • 2.1.0

':'
DATABASE_DELIM =

O caractere delimitando um banco de dados.

Desde:

  • 2.1.0

'/'
URI_OPTS_DELIM =

As opções de delimitação de caracteres.

Desde:

  • 2.1.0

'?'
INDIV_URI_OPTS_DELIM =
Obsoleto.

O caractere delimitando várias opções.

Desde:

  • 2.1.0

'&'
URI_OPTS_VALUE_DELIM =

O caractere delimitando uma opção e seu valor.

Desde:

  • 2.1.0

'='
AUTH_USER_PWS_DELIM =

O caractere que separa um nome de usuário da senha.

Desde:

  • 2.1.0

':'
AUTH_DELIM =

Os caracteres que delimitam as credenciais de autenticação.

Desde:

  • 2.1.0

'@'
SCHEME_DELIM =

Delimitador de esquema.

Desde:

  • 2.5.0

'://'
INVALID_OPTS_VALUE_DELIM =

Detalhes de erro para um formato de opções inválido.

Desde:

  • 2.1.0

'As opções e seus valores devem ser delimitados ' +
" por '#{URI_OPTS_VALUE_DELIM}'"
UNESCAPED_USER_PWD =

Detalhes de erro para um nome de usuário ou senha sem código URL.

Desde:

  • 2.1.0

'O nome de usuário e a senha devem ser codificados em URL.'
UNESCAPED_UNIX_SOCKET =

Detalhes de erro para um caminho de soquete unix sem código URL.

Desde:

  • 2.1.0

'Os soquetes de domínio UNIX devem ser codificados com URL.'
UNESCAPED_DATABASE =

Detalhes de erro para um nome de banco de dados de autenticação não codificado por URL.

Desde:

  • 2.1.0

'O banco de dados de autenticação deve ser codificado como URL.'
INVALID_OPTS_DELIM =

Detalhes de erro por fornecer opções sem um delimitador de banco de dados.

Desde:

  • 2.1.0

"O delimitador de banco de dados '#{DATABASE_DELIM}' deve estar presente se as opções forem especificadas."
INVALID_HOST =

Detalhes de erro para um host ausente.

Desde:

  • 2.1.0

'host ausente; pelo menos um deve ser fornecido.'
INVALID_PORT =

Detalhes de erro para uma porta inválida.

Desde:

  • 2.1.0

'Porta inválida. A porta deve ser um número inteiro maior que 0 e menor que 65536'
READ_MODE_MAP =

Mapa de modos de leitura de URI para modos de leitura de driver Ruby

Desde:

  • 2.0.0

{
  'primary' => :primary,
  'primarypreferred' => :primary_preferred,
  'secundário' => :secondary,
  'secondarypreferred' => :secondary_preferred,
  'mais próximo' => :mais próximo
}.congelar
AUTH_MECH_MAP =

Mapa de mecanismos de autenticação URI para mecanismos de driver Ruby

Desde:

  • 2.0.0

{
  'GSSAPI' => :gssapi,
  'MONGODB-AWS' => :aws,
  # O MONGODB-CR está obsoleto e será removido na versão do driver 3.0
  'MONGODB-CR' => :mongodb_cr,
  'MONGODB-X509' => :mongodb_x509,
  'PLAIN' => :plain,
  'SCRAM-SHA-1' => :scram,
  'SCRAM-SHA-256' => :scram256,
}.congelar
SERVER_MONITORING_MODES =

Valores válidos para a opção de URI serverMonitoringMode.

Desde:

  • 2.0.0

%w[fluxo enquete auto].congelar
REPEATABLE_OPTIONS =

Opções que podem aparecer mais de uma vez no uri.

Para seguir o requisito específico das opções de URI de que todas as instâncias de 'tls' e 'ssl' tenham o mesmo valor, precisamos acompanhar todos os valores passados para essas opções. Supondo que não entrem em conflito, serão condensadas em um único valor imediatamente após a análise do URI.

Desde:

  • 2.1.0

%i[tag_sets ssl]

Constantes incluídas do Loggable

Loggable::Prefix

Recolhimento do Resumo do atributo de instância

Recolhimento do Resumo do método de classe

Recolhimento do Resumo do método de instância

Métodos incluídos de Address::Validator

#validate_address_str!

Métodos incluídos no Loggable

#log_debug, #log_error, #log_fatal, #log_info, #log_WARN, #logger

Detalhes do construtor

#inicializar(string, opções = {}) ➤ URI

Crie o novo uri a partir da string fornecida.

Exemplos:

Crie o novo URI.

URI.new('mongodb://localhost:27017')

Parâmetros:

  • string (string)

    O URI a ser analisado.

  • opções (Hash) (padrão para: {})

    As opções.

Hash de opções (opções):

  • :logger (Registrador)

    Um registrador personalizado para usar.

Aumenta:

Desde:

  • 2.0.0



282
283
284
285
286
287
288
289
290
291
292
293
294
295
# Arquivo 'lib/mongo/uri.rb', linha 282

def inicializar(string, opções = {})
  aumentar Erro::URL inválida.Novo(string, ' OURI deve ser uma string, não nula.') a menos que string
  aumentar Erro::URL inválida.Novo(string, 'Não é possível analisar um URI vazio.') se string.vazio?

  @string = string
  @opções = opções
  parsed_scheme, _, restante = string.Partição(SCHEME_DELIM)
  a menos que parsed_scheme == Esquema
    create_invalid_error!("Esquema inválido '#{parsed_scheme}'. O esquema deve ser '#{MONGODB_SCHEME}'. Use URI#get para analisar URIs SRV.")
  end
  create_invalid_error!('Nenhum host no URI') se restante.vazio?
  análise!(restante)
  validate_uri_options!
end

Detalhes do atributo da instância

#opções Objeto (somente leitura)

As opções de objeto do analisador uri.

Desde:

  • 2.0.0



37
38
39
# Arquivo 'lib/mongo/uri.rb', linha 37

def opções
  @opções
end

#servidoresObjeto (somente leitura)

Os servidores especificados no uri.

Desde:

  • 2.0.0



47
48
49
# Arquivo 'lib/mongo/uri.rb', linha 47

def Servidores
  @servidores
end

#uri_options ➤ Objeto (somente leitura)

Mongo::Options::editado das opções especificadas no uri.

Desde:

  • 2.1.0



42
43
44
# Arquivo 'lib/mongo/uri.rb', linha 42

def uri_options
  @uri_options
end

Detalhes do método de classe

.get(string, opts = {}) ➤ URI, URI::SRVProtocol

Obtenha um objeto URI ou um objeto SRVProtocol URI .

Exemplos:

Obtenha o objeto uri.

URI.get(string)

Parâmetros:

  • string (string)

    O URI a ser analisado.

  • opciona (Hash) (padrão para: {})

    As opções.

  • opções (Hash)

    um conjunto personalizável de opções

Retorna:

Aumenta:

Desde:

  • 2.5.0



231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
# Arquivo 'lib/mongo/uri.rb', linha 231

def auto.obter(string, opciona = {})
  aumentar Erro::URL inválida.Novo(string, ' OURI deve ser uma string, não nula.') a menos que string
  aumentar Erro::URL inválida.Novo(string, 'Não é possível analisar um URI vazio.') se string.vazio?

  Esquema, = string.Partição(SCHEME_DELIM)
  caso Esquema
  quando MONGODB_SCHEME
    URI.Novo(string, opciona)
  quando MONGODB_SRV_SCHEME
    Protocolo SRV.Novo(string, opciona)
  mais
    aumentar Erro::URL inválida.Novo(string,
                                "Esquema inválido '#{schema}'. O esquema deve ser '#{MONGODB_SCHEME}' ou '#{MONGODB_SRV_SCHEME}'")
  end
end

Detalhes do método de instância

#client_options ➤ Mongo::Options::Redacted

Obtém o hash de opções que precisa ser passado para um Mongo::Client na instanciação, para que não precisemos mesclar as credenciais e o banco de dados nesse ponto - só temos um único ponto aqui.

Exemplos:

Obtenha as opções do cliente.

uri.client_options

Retorna:

Desde:

  • 2.0.0



257
258
259
260
261
262
263
# Arquivo 'lib/mongo/uri.rb', linha 257

def client_options
  opciona = uri_options.toque fazer |opciona|
    opciona[:database] = @database se @database
  end

  @user ? opciona.mesclar(credenciais) : opciona
end

#credenciaisHash

Obtenha as credenciais fornecidas no URI.

Exemplos:

Obtenha as credenciais.

uri.credentials

Retorna:

  • (Hash)

    As credenciais.

    • :user [ string ] O usuário.
    • :password [ string ] A senha fornecida.

Desde:

  • 2.0.0



307
308
309
# Arquivo 'lib/mongo/uri.rb', linha 307

def credenciais
  { utilizador: @user, senha: @senha }
end

#banco de dados ➤ string

Obtenha o banco de dados fornecido no URI.

Exemplos:

Obtenha o banco de dados.

uri.database

Retorna:

  • (string)

    O banco de dados.

Desde:

  • 2.0.0



319
320
321
# Arquivo 'lib/mongo/uri.rb', linha 319

def database
  @database || Database::ADMIN
end

#srv_records ➤ Objeto

Desde:

  • 2.0.0



265
266
267
# Arquivo 'lib/mongo/uri.rb', linha 265

def srv_records
  nada
end

#to_s ➤ string

Obtenha o uri como uma string.

Exemplos:

Obtenha o uri como uma string.

uri.to_s

Retorna:

  • (string)

    A string uri.

Desde:

  • 2.0.0



329
330
331
# Arquivo 'lib/mongo/uri.rb', linha 329

def to_s
  reconstruct_uri
end