Clase: Mongo::URI

Hereda:
Objeto
  • Objeto
Mostrar todo
Incluye:
Address::Validator, Loggable
Definido en:
lib/mongo/uri.rb,
lib/mongo/uri/srv_protocol.rb,
lib/mongo/uri/options_mapper.rb

Overview

La clase URI proporciona una forma para que los usuarios analicen el uri de MongoDB tal como se define en la especificación del formato de la cadena de conexión.

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

Ejemplos:

Utiliza el string uri para realizar una conexión de 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 bajo Namespace

clase: OptionsMapper, SRVProtocol

Resumen de constantes colapsar

ESQUEMA =
Obsoleto.

Se eliminará en 3.0.

El esquema de cadena de conexión de mongodb.

Desde:

  • 2.0.0

'mongodb://'
MONGODB_SCHEME =

El esquema raíz de la cadena de conexión de MongoDB.

Desde:

  • 2.5.0

'mongodb'
MONGODB_SRV_SCHEME =

El esquema raíz de la cadena de conexión del protocolo srv de MongoDB.

Desde:

  • 2.5.0

'mongodb+srv'
INVALID_SCHEME =
Obsoleto.

Detalles de error para un esquema inválido.

Desde:

  • 2.1.0

"Esquema no válido. El esquema debe ser '#{MONGODB_SCHEME}' o '#{MONGODB_SRV_SCHEME}'"
formato =

Especificación del formato URI de MongoDB.

Desde:

  • 2.0.0

'mongodb://[nombre de usuario:contraseña@]host1[:puerto1][,host2[:puerto2]' +
'...[,hostN[:portN]]][/[base de datos][?options]]'
AYUDA =

URL de documentación del URI de MongoDB (cadena de conexión)

Desde:

  • 2.0.0

'https://www.mongodb.com/es/docs/manual/reference/connection-string/'
NO SEGURO =

Caracteres no seguros que deben estar codificados en URL.

Desde:

  • 2.1.0

%r{[:/@]}
PERCENT_CHAR =

Signo de porcentaje que debe ser codificado en las credenciales del usuario.

Desde:

  • 2.5.1

/%/
UNIX_SOCKET =

Sufijo de socket Unix.

Desde:

  • 2.1.0

/.sock/
HOST_DELIM =

El carácter que delimita los hosts.

Desde:

  • 2.1.0

','
HOST_PORT_DELIM =

El carácter que separa un host y un puerto.

Desde:

  • 2.1.0

':'
DATABASE_DELIM =

El carácter que delimita una base de datos.

Desde:

  • 2.1.0

'/'
URI_OPTS_DELIM =

Las opciones de delimitación de caracteres.

Desde:

  • 2.1.0

'?'
INDIV_URI_OPTS_DELIM =
Obsoleto.

El carácter que delimita varias opciones.

Desde:

  • 2.1.0

'&'
URI_OPTS_VALUE_DELIM =

El carácter que delimita una opción y su valor.

Desde:

  • 2.1.0

'='
AUTH_USER_PWD_DELIM =

El carácter que separa un nombre de usuario de la contraseña.

Desde:

  • 2.1.0

':'
AUTH_DELIM =

El carácter que delimita las credenciales de autenticación.

Desde:

  • 2.1.0

'@'
SCHEME_DELIM =

Delimitador de esquema.

Desde:

  • 2.5.0

'://'
INVALID_OPTS_VALUE_DELIM =

Detalles del error para un formato de opciones no válido.

Desde:

  • 2.1.0

'Las opciones y sus valores deben estar delimitados' +
" por '#{URI_OPTS_VALUE_DELIM}'"
UNESCAPED_USER_PWD =

Detalles del error para un nombre de usuario o contraseña sin URLEncoding.

Desde:

  • 2.1.0

'El nombre de usuario y la contraseña deben estar codificados en URL.'
UNESCAPED_UNIX_SOCKET =

Detalles del error para una ruta de socket Unix no codificada.

Desde:

  • 2.1.0

'Los sockets de dominio UNIX deben estar codificados en URL.'
UNESCAPED_DATABASE =

Detalles del error de un nombre de base de datos de autenticación que no está codificado en URL.

Desde:

  • 2.1.0

'La base de datos de autenticación debe estar urlencoded.'
INVALID_OPTS_DELIM =

Detalles del error para proporcionar opciones sin un delimitador de base de datos.

Desde:

  • 2.1.0

"El delimitador de base de datos '#{DATABASE_DELIM}' debe estar presente si se especifican opciones."
INVALID_HOST =

Detalles del error por un host ausente.

Desde:

  • 2.1.0

'Falta el host; debe proporcionarse al menos uno.'
PUERTO_INVÁLIDO =

Detalles del error para un puerto no válido.

Desde:

  • 2.1.0

'Puerto inválido. El puerto debe ser un número entero mayor que 0 y menor que 65536'
READ_MODE_MAP =

Mapa de modos de preferencia de lectura URI a modos de preferencia de lectura del driver Ruby

Desde:

  • 2.0.0

{
  'primario/a' => primario/a,
  'primarypreferred' => :primary_preferred,
  'secundario' => secundario,
  'secondarypreferred' => preferencia_secundaria,
  'más cercano' => :nearest
}.freeze
AUTH_MECH_MAP =

Mapa de mecanismos de autenticación URI a mecanismos del driver de Ruby

Desde:

  • 2.0.0

{
  'GSSAPI' => :gssapi,
  'MONGODB-AWS' => aws,
  # MONGODB-CR está obsoleto y se eliminará en la versión 3.0del controlador
  'MONGODB-CR' => :mongodb_cr,
  'MONGODB-X509' => :mongodb_x509,
  'PLAIN' => :plain,
  'SCRAM-SHA-1' => Schram,
  'SCRAM-SHA-256' => :scram256,
}.freeze
SERVER_MONITORING_MODES =

Valores válidos para la opción URI serverMonitoringMode.

Desde:

  • 2.0.0

%w[Transmisión sondeo auto].freeze
REPEATABLE_OPTIONS =

Opciones que se permiten que aparezcan más de una vez en el URI.

Para cumplir con el requisito de la especificación de opciones URI de que todas las instancias de 'tls' y 'ssl' tengan el mismo valor, necesitamos realizar un seguimiento de todos los valores que se pasen para esas opciones. Suponiendo que no entren en conflicto, se condensarán en un solo valor inmediatamente después de analizar el URI.

Desde:

  • 2.1.0

%i[tag_sets ssl]

Constantes incluidas desde Loggable

Loggable::PREFIX

Resumen de atributos de la instancia colapsar

Resumen del método de clase colapsar

Resumen del método de instancia colapsar

Métodos incluidos de Address::Validator

#validate_address_str!

Métodos incluidos desde Registrable

#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger

Detalles del Constructor

#initialize(string, opciones = {}) ⇒ URI

Crear el nuevo uri a partir de la string proporcionada.

Ejemplos:

Cree el nuevo URI.

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

Parámetros:

  • string (string)

    El URI para analizar.

  • opciones (encriptada) (por defecto: {})

    Las opciones.

Opciones Hash (options):

  • :logger (Logger)

    Un registrador personalizado para usar.

Aumenta:

Desde:

  • 2.0.0



282
283
284
285
286
287
288
289
290
291
292
293
294
295
# Archivo 'lib/mongo/uri.rb', línea 282

def inicializar(string, opciones = {})
  propagar Error::InvalidURI.Nuevo(string, 'La URI debe ser una string, no nula.') a menos que string
  propagar Error::InvalidURI.Nuevo(string, 'No se puede analizar una URI vacía.') si string.¿vacío?

  @string = string
  @options = opciones
  parsed_scheme, _, restante = string.partición(SCHEME_DELIM)
  a menos que parsed_scheme == esquema
    raise_invalid_error!("Esquema inválido '#{parsed_scheme}'. El esquema debe ser '#{MONGODB_SCHEME}'. Utilice URI#get para analizar los URI SRV.")
  end
  raise_invalid_error!('No hay hosts en la URI') si restante.¿vacío?
  parse!(restante)
  validate_uri_options!
end

Detalles de atributo de instancias

#opcionesObjeto (solo lectura)

Las opciones de objeto del parser uri.

Desde:

  • 2.0.0



37
38
39
# Archivo 'lib/mongo/uri.rb', línea 37

def opciones
  @options
end

#servidoresObjeto (solo lectura)

Los servidores especificados en el uri.

Desde:

  • 2.0.0



47
48
49
# Archivo 'lib/mongo/uri.rb', línea 47

def servidor
  @servers
end

#uri_optionsObject (solo lectura)

Mongo::Options::Redacted de las opciones especificadas en el uri.

Desde:

  • 2.1.0



42
43
44
# Archivo 'lib/mongo/uri.rb', línea 42

def uri_options
  @uri_options
end

Detalles del método de clase

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

Obtiene un objeto URI o un objeto SRVProtocol URI.

Ejemplos:

Obtén el objeto uri.

URI.get(string)

Parámetros:

  • string (string)

    El URI para analizar.

  • opciones (encriptada) (por defecto: {})

    Las opciones.

  • opciones (encriptada)

    un conjunto personalizable de opciones

Devuelve:

Aumenta:

Desde:

  • 2.5.0



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

def sí mismo.Obtener(string, opciones = {})
  propagar Error::InvalidURI.Nuevo(string, 'La URI debe ser una string, no nula.') a menos que string
  propagar Error::InvalidURI.Nuevo(string, 'No se puede analizar una URI vacía.') si string.¿vacío?

  esquema, = string.partición(SCHEME_DELIM)
  caso esquema
  cuando MONGODB_SCHEME
    URI.Nuevo(string, opciones)
  cuando MONGODB_SRV_SCHEME
    SRVProtocol.Nuevo(string, opciones)
  else
    propagar Error::InvalidURI.Nuevo(string,
                                "Esquema no válido '#{scheme}'. El esquema debe ser '#{MONGODB_SCHEME}' o '#{MONGODB_SRV_SCHEME}'")
  end
end

Detalles del método de instancia

#client_optionsMongo::Options::Redacted

Obtiene el hash de opciones que debe pasarse a un Mongo::Client al momento de la creación, para que no tengamos que fusionar las credenciales y la base de datos en ese momento: solo tenemos un único punto aquí.

Ejemplos:

Obtener las opciones del cliente.

uri.client_options

Devuelve:

Desde:

  • 2.0.0



257
258
259
260
261
262
263
# Archivo 'lib/mongo/uri.rb', línea 257

def client_options
  opciones = uri_options.tocar hacer |opciones|
    opciones[:database] = @database si @database
  end

  @user ? opciones.fusionar(credenciales) : opciones
end

#credencialesHash

Obtén las credenciales proporcionadas en el URI.

Ejemplos:

Obtener las credenciales.

uri.credentials

Devuelve:

  • (encriptada)

    Las credenciales.

    • :usuario [ String ] El usuario.
    • :password [ String ] La contraseña proporcionada.

Desde:

  • 2.0.0



307
308
309
# Archivo 'lib/mongo/uri.rb', línea 307

def credenciales
  { usuario: @user, Contraseña: @password }
end

#databaseString

Obtenga la base de datos proporcionada en el URI.

Ejemplos:

Obtener la base de datos.

uri.database

Devuelve:

  • (string)

    La base de datos.

Desde:

  • 2.0.0



319
320
321
# Archivo 'lib/mongo/uri.rb', línea 319

def database
  @database || Database::ADMIN
end

#srv_recordsObjeto

Desde:

  • 2.0.0



265
266
267
# Archivo 'lib/mongo/uri.rb', línea 265

def srv_records
  nulo
end

#to_sString

Obtén el uri como una string.

Ejemplos:

Obtén el uri como una string.

uri.to_s

Devuelve:

  • (string)

    El string de la URI.

Desde:

  • 2.0.0



329
330
331
# Archivo 'lib/mongo/uri.rb', línea 329

def to_s
  reconstruct_uri
end