Clase: Mongo::Client
- Hereda:
-
Objeto
- Objeto
- Mongo::cliente
- Ampliado por:
- Reenviable
- Incluye:
- Registrable
- Definido en:
- lib/mongo/cliente.rb
Overview
El cliente es el punto de entrada al driver y es el objeto principal con el que se interactuará.
Resumen de constantes colapsar
- CRUD_OPCIONES =
Las opciones que no afectan el comportamiento de un clúster y sus subcomponentes.
[ opciones de cifrado automático, :database, :leer, :read_concern, guardar, conformidad_de_lectura, :retry_reads, :max_read_retries, intervalo_de_nueva_lectura, retry_writes, :max_write_retries, max_intentos_adaptativos, :enable_overload_retargeting, :timeout_ms, # Opciones que actualmente no pueden estar aquí: # # :tiempo_espera_selección_servidor # El tiempo de espera de la selección del servidor es utilizado por el constructor de clústeres para determinar # cuánto tiempo esperar para la exploración inicial en modo de compatibilidad, pero una vez # el clúster es inicializado, ya no utiliza este tiempo de espera. # Desafortunadamente, el selector de servidores lee el tiempo de espera de selección de servidor fuera de # el clúster, y este comportamiento es necesario para Cluster#next_primary # que no acepta argumentos. Cuando next_primary se elimine, podemos revisarlo # uso del mismo objeto de clúster con diferentes tiempos de espera para la selección de servidores. ].freeze
- VALID_OPTIONS =
Opciones válidas del cliente.
%i[ app_name auth_mech auth_mech_properties auth_source auto_encryption_options bg_error_backtrace Optimización compresores conexión_directa enable_overload_retargeting Conectar conectar_timeout database frecuencia del latido del corazón id_generator equilibrio de carga umbral_local logger log_prefix max_adaptive_retries max_connecting tiempo_máximo_inactivo max_pool_size max_read_retries max_write_retries min_pool_size Monitoring monitoring_io Contraseña Plataforma populator_io Lea read_concern read_retry_interval replica_set resolv_options retry_reads reintentar_escrituras escáner sdam_proc server_api server_monitoring_mode server_selection_timeout socket_timeout srv_max_hosts srv_service_name ssl ssl_ca_cert ssl_ca_cert_object ssl_ca_cert_string ssl_cert ssl_cert_object ssl_cert_string ssl_key ssl_key_object ssl_key_pass_phrase ssl_key_string ssl_verify ssl_verify_certificate ssl_verify_hostname ssl_verify_ocsp_endpoint timeout_ms trazado truncate_logs usuario wait_queue_timeout wrapping_libraries guardar write_concern zlib_compression_level ].freeze
- VALID_COMPRESSORS =
Los algoritmos de compresión compatibles con el driver.
[ mongo::protocolo::Comprimido::zstd, mongo::protocolo::Comprimido::rápido, mongo::protocolo::Comprimido::zlib ].freeze
- VERSIONES_API_SERVIDOR_VÁLIDAS =
Las versiones conocidas de API del servidor.
%w[ 1 ].freeze
Constantes incluidas desde Loggable
Resumen de atributos de la instancia colapsar
-
#cluster ⇒ Mongo::Cluster
Solo lectura
Clúster El clúster de servidores para el cliente.
-
#database ⇒ Mongo::Database
Solo lectura
Base de datos: la base de datos en la que opera el cliente.
-
#encrypter ⇒ Mongo::Crypt::AutoEncrypter
Solo lectura
El objeto que encapsula el comportamiento de autoencriptación.
-
#options ⇒ Hash
Solo lectura
Opciones Las opciones de configuración.
-
#retry_policy ⇒ Mongo::Retryable::RetryPolicy
Solo lectura
privado
La política de reintentos para la presión de retroceso y los reintentos adaptativos.
Resumen del método de clase colapsar
-
.canonicalize_ruby_options(options) ⇒ objeto
privado
Convierta las propiedades del mecanismo de autenticación a minúsculas, si se proporcionan, en las opciones especificadas, luego convierta las opciones en una instancia de Options::Redacted.
Resumen del método de instancia colapsar
-
#==(otro) ⇒ true, false (también: #eql?)
Determine si este cliente es equivalente a otro objeto.
-
#[](collection_name, options = {}) ⇒ Mongo::Collection
Obtén un objeto de colección para el nombre de colección proporcionado.
-
#close ⇒ true
Cierra todas las conexiones.
-
#close_encrypter ⇒ true
Cerrar el encriptador y limpiar los recursos de autoencriptación.
- #¿cerrado? ⇒ Booleano
- #cluster_options ⇒ Objeto privado
-
#database_names(filtro = {}, opts = {}) ⇒ arreglo<String>
Obtén los nombres de todas las bases de datos.
-
#encrypted_fields_map ⇒ hash | nil
privado
Devuelve un hash de mapa de campo cifrado si se proporciona al crear el cliente.
-
#get_session(options = {}) ⇒ Session | nil
privado
Devuelve una sesión para usar en operaciones si es posible.
-
#hash ⇒ Integer
Obtén el valor hash del cliente.
-
#initialize(addresses_or_uri, options = nil) ⇒ Cliente
constructor
Instancia un nuevo cliente de driver.
-
#inspect ⇒ string
Obtén una inspección del cliente como string.
-
#list_databases(filtro = {}, name_only = false, opts = {}) ⇒ Array<Hash>
Obtener información de cada base de datos.
-
#list_mongo_databases(filtro = {}, opts = {}) ⇒ Arreglo<Mongo::Database>
Devuelve una lista de objetos Mongo::base de datos.
-
#max_read_retries ⇒ Entero
privado
Obten el número máximo de veces que el cliente puede reintentar una operación de lectura al utilizar reintentos de lectura heredados.
-
#max_write_retries ⇒ Integer
privado
Obtén el número máximo de veces que el cliente puede volver a intentar una operación de escritura cuando se utilizan reintentos de escritura heredados.
-
#monitoring ⇒ Monitoring
privado
Supervisión La supervisión.
-
#read_concern ⇒ Hash
Obtener el nivel de consistencia de lectura para este cliente.
-
#read_preference ⇒ BSON::Document
Obtenga la preferencia de lectura de las opciones pasadas al cliente.
-
#read_retry_interval ⇒ Flotante
privado
Obtenga el intervalo, en segundos, en el que se reintenta la lectura al utilizar reintentos de lectura heredados.
-
#reconnect ⇒ verdadero
Reconectar el cliente.
-
#reset_cluster!(supervisión: nulo) ⇒ Objeto
privado
Reemplaza el clúster de este cliente con una nueva instancia compilada a partir de las opciones actuales del cliente.
-
#reset_database! ⇒ Object
privado
Reemplaza la base de datos de este cliente con una nueva instancia compilada a partir de las opciones actuales del cliente.
-
#server_selector ⇒ Mongo::ServerSelector
Obtenga el selector de servidor.
-
#start_session(options = {}) ⇒ sesión
Inicia una sesión.
-
#summary ⇒ String
Obtenga un resumen del estado del cliente.
-
#timeout_ms ⇒ Integer | nil
privado
Valor de la opción timeout_ms si está configurada.
-
#timeout_sec ⇒ Float | nil
privado
Valor de la opción timeout_ms convertida en segundos.
-
#rastrear ⇒ Trazado::Rastreador | nulo
Obtén el trazador configurado para este cliente.
-
#update_options(new_options) ⇒ Hash
privado
Actualiza las opciones de este cliente a partir de las nuevas opciones, validando todas las opciones.
-
#use(name) ⇒ Mongo::cliente
Crea un nuevo cliente configurado para usar la base de datos con el nombre proporcionado y utilizando las otras opciones configuradas en este cliente.
-
#ver(pipeline = [], options = {}) ⇒ ChangeStream
Permite que los usuarios pidan que se envíen notificaciones para todos los cambios que se produzcan en el clúster del cliente.
-
#with(new_options = nil) ⇒ Mongo::cliente
Crea un nuevo cliente con las opciones recibidas fusionadas sobre las opciones existentes de este cliente.
-
#con_sesión(opciones = {}) ⇒ Objeto
privado
Crea una sesión para usar en operaciones si es posible y la cede al bloque proporcionado.
-
#write_concern ⇒ Mongo::WriteConcern
Obtén el nivel de confirmación de escritura (write concern) para este cliente.
Métodos incluidos desde Registrable
#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger
Detalles del Constructor
#inicializar(direcciones_o_uri, opciones = nil) ⇒ Cliente
Instancia un nuevo cliente de driver.
539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 |
# Archivo 'lib/mongo/client.rb', línea 539 def inicializar(direcciones_o_uri, = nulo) = ? .dup : {} procesado = process_addresses(direcciones_o_uri, ) uri = procesado[uri] direcciones = procesado[direcciones] = procesado[:options] # Si el URI es un URI SRV, tómese nota de esto para que podamos comenzar # sondeo SRV si la topología es un clúster sharded. srv_uri = uri si uri.is_a?(URI::SRVProtocol) = sí mismo.clase.() # La versión de la API del servidor se debe especificar como una string. # Sin embargo, es muy molesto tener que proporcionar siempre el número 1 como una string, # por lo tanto, haz el type cast al tipo string aquí. si (server_api = [API del servidor]) && server_api.is_a?(encriptada) server_api = opciones::Redactado.Nuevo(server_api) si (Versión = server_api[:versión]).is_a?(entero) [API del servidor] = server_api.fusionar(versión: Versión.to_s) end end # Manejo especial para sdam_proc ya que solo se utiliza durante el cliente # construcción sdam_proc = .borrar(:sdam_proc) # Para el service_name de gssapi, la opción por defecto se proporciona en un hash # (un nivel por debajo del nivel superior). = () .cada hacer |k, v| default_v = [k] v = default_v.fusionar(v) si default_v.is_a?(encriptada) [k] = v end = .claves.cada hacer |k| .borrar(k) si [k].nil? end @options = () # Soporte de objetos WriteConcern # si @options[:write_concern].is_a?(WriteConcern::Base) # # Guardar en caché la instancia para que no tengamos que reconstruirla innecesariamente. # @write_concern = @options[:write_concern] # @opciones[:write_concern] = @write_concern.opciones # end @options.freeze (direcciones, is_srv: uri.is_a?(URI::SRVProtocol)) = @options.dup .borrar(API del servidor) @database = Database.Nuevo(sí mismo, @options[:database], ) # Establecer temporalmente la supervisión para que las suscripciones de eventos puedan ser # configuración sin que haya un clúster @monitoring = Monitoring.Nuevo(@options) sdam_proc.llamar(sí mismo) si sdam_proc @connect_lock = Mutex (exclusión mutua).Nuevo @retry_policy = Reintentar::RetryPolicy.Nuevo( max_retries: @options[max_intentos_adaptativos] || Reintentar::Contrapresión::DEFAULT_MAX_RETRIES ) @connect_lock.sincronizar hacer @cluster = clúster.Nuevo( direcciones, @monitoring, .fusionar(srv_uri: srv_uri) ) end begin # Desactivar la supervisión, se desconectará del clúster a partir de ahora remove_instance_variable(:@monitoring) si @options[opciones de cifrado automático] @connect_lock.sincronizar hacer crear_cifrador end end rescate StandardError begin @cluster.Cerrar rescate StandardError => e log_warn("Error al cerrar el clúster en el manejador de excepciones del constructor del cliente: #{e.class}: #{e}") # Descarta esta excepción para que se genere la excepción original end propagar end return a menos que ¿block_given? begin rendimiento(sí mismo) asegurar Cerrar end end |
Detalles de atributo de instancias
#clúster ⇒ Mongo::Cluster (solo lectura)
Devuelve el clúster El clúster de servidores para el cliente.
143 144 145 |
# Archivo 'lib/mongo/client.rb', línea 143 def clúster @cluster end |
#database ⇒ Mongo::Database (readonly)
Devuelve la base de datos La base de datos en la que opera el cliente.
146 147 148 |
# Archivo 'lib/mongo/client.rb', línea 146 def database @database end |
#encrypter ⇒ Mongo:: Crypt:: AutoEncrypter (solo lectura)
Devuelve el objeto que encapsula el comportamiento de cifrado automático.
153 154 155 |
# Archivo 'lib/mongo/client.rb', línea 153 def encriptador @encryptador end |
#opciones ⇒ Hash (solo lectura)
Devuelve opciones Las opciones de configuración.
149 150 151 |
# Archivo 'lib/mongo/client.rb', línea 149 def @options end |
#retry_policy ⇒ Mongo::Retryable::RetryPolicy (solo lectura)
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve La política de reintentos para retención de flujo y reintentos adaptativos.
158 159 160 |
# Archivo 'lib/mongo/client.rb', línea 158 def retry_policy @retry_policy end |
Detalles del método de clase
.canonicalize_ruby_options(opciones) ⇒ Objeto
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Convierta las propiedades del mecanismo de autenticación a minúsculas, si se proporcionan, en las opciones especificadas, luego convierta las opciones en una instancia de Options::Redacted.
1215 1216 1217 1218 1219 1220 1221 1222 |
# Archivo 'lib/mongo/client.rb', línea 1215 def () opciones::Redactado.Nuevo(encriptada[.map hacer |k, v| si [ propiedades_mecánica_autenticación, 'auth_mech_properties' ].incluir?(k) && v v = encriptada[v.map { |pk, pv| [ pk.minúscula, pv ] }] end [ k, v ] end]) end |
Detalles del método de instancia
#==(other) ⇒ verdadero, falso También conocido como: eql?
Determine si este cliente es equivalente a otro objeto.
186 187 188 189 190 |
# Archivo 'lib/mongo/client.rb', línea 186 def ==(Otros) return false a menos que Otros.is_a?(Cliente) clúster == Otros.clúster && == Otros. end |
#[](collection_name, options = {}) ⇒ Mongo::Collection
Obtén un objeto de colección para el nombre de colección proporcionado.
204 205 206 |
# Archivo 'lib/mongo/client.rb', línea 204 def [](nombre_colección, = {}) database[nombre_colección, ] end |
#cerrar ⇒ verdadero
Cierra todas las conexiones.
916 917 918 919 920 921 922 |
# Archivo 'lib/mongo/client.rb', línea 916 def Cerrar @connect_lock.sincronizar hacer @closed = true cerrar end true end |
#close_encrypter ⇒ true
Cerrar el encriptador y limpiar los recursos de autoencriptación.
927 928 929 930 931 |
# Archivo 'lib/mongo/client.rb', línea 927 def close_encrypter @encryptador.Cerrar si @encryptador true end |
#¿closed? ⇒ Boolean
907 908 909 |
# Archivo 'lib/mongo/client.rb', línea 907 def ¿Cerrado? !!@closed end |
#cluster_options ⇒ Objeto
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 |
# Archivo 'lib/mongo/client.rb', línea 644 def # Compartimos clústeres cuando un nuevo cliente tiene diferentes CRUD_OPCIONES # se solicita; por lo tanto, el clúster no debería obtener ninguno de ellos # opciones al momento de la creación .rechazar hacer |llave, _valor| CRUD_OPTIONS.incluir?(llave.to_sym) end.fusionar( # pero necesitamos volver a poner la base de datos para la autenticación... database: [:database], # Introduce estas opciones por compatibilidad con versiones anteriores, pero ten en cuenta que # sus valores en el cliente y el clúster no tienen que coincidir - # las aplicaciones deben leer estos valores del cliente, no del clúster max_reintentos_lectura: [:max_read_retries], read_retry_interval: [intervalo_de_nueva_lectura], rastreador: trazador ).tocar hacer || # Si el cliente ya tiene un clúster, reenvía srv_uri al nuevo # clúster para mantener la supervisión SRV. Si el cliente es completamente nuevo, # su constructor establece srv_uri manualmente. .update(srv_uri: clúster.[:srv_uri]) si clúster end end |
#database_names(filtro = {}, opciones = {}) ⇒ arreglo<String>
Obtén los nombres de todas las bases de datos.
985 986 987 |
# Archivo 'lib/mongo/client.rb', línea 985 def database_names(filtro = {}, opciones = {}) list_databases(filtro, true, opciones).collect { |información| información['nombre'] } end |
#encrypted_fields_map ⇒ Hash | nil
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve un hash de mapa de campo cifrado si se proporciona al crear el cliente.
1229 1230 1231 |
# Archivo 'lib/mongo/client.rb', línea 1229 def encrypted_fields_map @encrypted_fields_map ||= @options.obtener(opciones de cifrado automático, {})[mapa_de_campos_cifrados] end |
#get_session(options = {}) ⇒ Session | nil
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve una sesión para usar en operaciones si es posible.
Si la opción :sessionestá configurada, valida esa sesión y la devuelve. De lo contrario, si la implementación admite sesiones, crea una nueva sesión y la devuelve. Cuando se crea una nueva sesión, la sesión será implícita (el ciclo de vida es administrado por el driver) si se proporciona la opción :implícita, de lo contrario la sesión será explícita (el ciclo de vida la gestiona la aplicación). Si la implementación no admite la sesión, devuelve nil.
1173 1174 1175 1176 1177 |
# Archivo 'lib/mongo/client.rb', línea 1173 def get_session( = {}) get_session!() rescate Error::SessionsNotSupported nulo end |
#hash ⇒ Integer
Obtén el valor hash del cliente.
216 217 218 |
# Archivo 'lib/mongo/client.rb', línea 216 def hash [ clúster, ].hash end |
#inspect ⇒ String
Obtén una inspección del cliente como string.
706 707 708 |
# Archivo 'lib/mongo/client.rb', línea 706 def inspeccionar "#<Mongo::cliente:0x#{object_id} clúster=#{clúster.summary}>" end |
#list_databases(filtro = {}, solo_nombre = false, opciones = {}) ⇒ arreglo<Hash>
Obtener información de cada base de datos.
See https://mongodb.com/es/docs/manual/reference/command/listDatabases/
for more information and usage.
1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 |
# Archivo 'lib/mongo/client.rb', línea 1016 def list_databases(filtro = {}, name_only = false, opciones = {}) cmd = { listDatabases: 1 } cmd[nombreSolo] = !!name_only cmd[filtro] = filtro a menos que filtro.¿vacío? cmd[bases de datos autorizadas] = true si opciones[:authorized_databases] Usar(Database::ADMIN) .database .read_command(cmd, opciones.fusionar(op_name: 'listDatabases')) .primero[Database::base de datos] end |
#list_mongo_databases(filter = {}, opts = {}) ⇒ Array<Mongo::Database>
Devuelve una lista de objetos Mongo::base de datos.
1042 1043 1044 1045 1046 |
# Archivo 'lib/mongo/client.rb', línea 1042 def list_mongo_databases(filtro = {}, opciones = {}) database_names(filtro, opciones).collect hacer |Nombre| Database.Nuevo(sí mismo, Nombre, ) end end |
#max_read_retries ⇒ Entero
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Obten el número máximo de veces que el cliente puede reintentar una operación de lectura al utilizar reintentos de lectura heredados.
674 675 676 |
# Archivo 'lib/mongo/client.rb', línea 674 def max_read_retries [:max_read_retries] || clúster::MAX_READ_RETRIES end |
#max_write_retries ⇒ entero
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Obtén el número máximo de veces que el cliente puede volver a intentar una operación de escritura cuando se utilizan reintentos de escritura heredados.
694 695 696 |
# Archivo 'lib/mongo/client.rb', línea 694 def max_write_retries [:max_write_retries] || clúster::MAX_WRITE_RETRIES end |
#monitoring ⇒ Monitoring
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Supervisión de devoluciones La supervisión.
168 169 170 171 172 173 174 |
# Archivo 'lib/mongo/client.rb', línea 168 def Monitoring si clúster clúster.Monitoring else @monitoring end end |
#read_concern ⇒ Hash
Obtener el nivel de consistencia de lectura para este cliente.
890 891 892 |
# Archivo 'lib/mongo/client.rb', línea 890 def read_concern [:read_concern] end |
#read_preference ⇒ BSON::Document
Obtenga la preferencia de lectura de las opciones pasadas al cliente.
754 755 756 |
# Archivo 'lib/mongo/client.rb', línea 754 def read_preference @read_preference ||= [:leer] end |
#read_retry_interval ⇒ Float
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Obtenga el intervalo, en segundos, en el que se reintenta la lectura al utilizar reintentos de lectura heredados.
684 685 686 |
# Archivo 'lib/mongo/client.rb', línea 684 def read_retry_interval [intervalo_de_nueva_lectura] || clúster::READ_RETRY_INTERVAL end |
#reconectar ⇒ verdadero
Reconectar el cliente.
941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 |
# Archivo 'lib/mongo/client.rb', línea 941 def Reconnecting direcciones = clúster.direcciones.map(&to_s) @connect_lock.sincronizar hacer begin cerrar rescate StandardError nulo end @cluster = clúster.Nuevo(direcciones, Monitoring, ) crear_cifrador si @options[opciones de cifrado automático] @closed = false end true end |
#reset_cluster!(supervisión: nil) ⇒ Objeto
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Reemplaza el clúster de este cliente con una nueva instancia compilada a partir de las opciones actuales del cliente. Utilizado por #with para que un cliente reconfigurado no comparta su clúster con el cliente del que se clonó.
874 875 876 877 878 879 880 |
# Archivo 'lib/mongo/client.rb', línea 874 def reset_cluster!(supervisión: nulo) @cluster = clúster.Nuevo( clúster.direcciones.map(&to_s), Monitoring || Monitoring.Nuevo, ) end |
#reset_database! ⇒ Object
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Reemplaza la base de datos de este cliente con una nueva instancia compilada a partir de las opciones actuales del cliente. Utilizado por #with para que un cliente reconfigurado no comparta su base de datos con el cliente del que se clonó.
862 863 864 |
# Archivo 'lib/mongo/client.rb', línea 862 def reset_database! @database = Database.Nuevo(sí mismo, [:database], ) end |
#server_selector ⇒ Mongo::ServerSelector
Obtenga el selector de servidor. Utiliza la preferencia de lectura definida en las opciones del cliente o se establece por defecto en un selector de servidor primario.
732 733 734 735 736 737 738 |
# Archivo 'lib/mongo/client.rb', línea 732 def selector_de_servidor @server_selector ||= si read_preference ServerSelector.Obtener(read_preference) else ServerSelector.primario end end |
#start_session(options = {}) ⇒ Sesión
Una sesión no puede ser utilizada por varios hilos al mismo tiempo; los objetos de sesión no son seguros para hilos.
Inicia una sesión.
Si la implementación no admite sesiones, genera Mongo::Error::InvalidSession. Esta excepción también puede generar si el controlador no está conectado a un servidor que contiene datos, por ejemplo, durante una conmutación por error.
1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 |
# Archivo 'lib/mongo/client.rb', línea 1067 def start_session( = {}) sesión = get_session!(.fusionar(implicit: false)) si ¿block_given? begin rendimiento sesión asegurar sesión.end_session end else sesión end end |
#summary → String
El formato y diseño exactos de la string de resumen devuelta no forman parte de la API pública del driver y pueden cambiarse en cualquier momento.
Obtenga un resumen del estado del cliente.
718 719 720 |
# Archivo 'lib/mongo/client.rb', línea 718 def Resumen "#<Grupo de clientes=#{clúster.resumen}>" end |
#timeout_ms ⇒ Integer | nil
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve el valor de la opción timeout_ms si está configurada.
1235 1236 1237 |
# Archivo 'lib/mongo/client.rb', línea 1235 def timeout_ms @options[:timeout_ms] end |
#timeout_sec ⇒ Float | nil
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve el valor de la opción timeout_ms convertido a segundos.
1241 1242 1243 1244 1245 1246 1247 |
# Archivo 'lib/mongo/client.rb', línea 1241 def tiempo_límite_seg si timeout_ms.nil? nulo else timeout_ms / 1_000.0 end end |
#trazador ⇒ Tracing::Tracer | nil
Obtén el trazador configurado para este cliente.
1252 1253 1254 1255 1256 1257 1258 1259 |
# Archivo 'lib/mongo/client.rb', línea 1252 def trazador opciones de trazado = @options[trazando] || {} @tracer ||= Trazado.create_tracer( activado: opciones de trazado[con autorización], query_text_max_length: opciones de trazado[:query_text_max_length], otel_tracer: opciones de trazado[trazador] ) end |
#update_options(new_options) ⇒ Hash
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Actualiza las opciones de este cliente a partir de las nuevas opciones, validando todas las opciones.
Las nuevas opciones pueden transformarse según distintas reglas. Se devuelve el hash final de las opciones realmente aplicadas al cliente.
Si las opciones no pasan la validación, este método puede advertir o generar una excepción. Si este método genera una excepción, el cliente debe ser descartado (de manera similar a si un constructor genera una excepción).
819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 |
# Archivo 'lib/mongo/client.rb', línea 819 def () = @options = sí mismo.clase.( || {}) ().tocar hacer |opciones| # Nuestras opciones están congeladas = @options.dup .borrar(guardar) si [guardar] && opciones[conformidad_de_lectura] .borrar(conformidad_de_lectura) si [conformidad_de_lectura] && opciones[guardar] .update(opciones) @options = .freeze = @options[opciones de cifrado automático] != [opciones de cifrado automático] # Si hay nuevas auto_encryption_options, crea un nuevo encriptador. # De lo contrario, permite que el nuevo cliente comparta un encriptador con el # cliente original. # # Si auto_encryption_options son nulos, establecer @encrypter en nulo, pero no # cerrar el encriptador porque aún puede ser utilizado por el cliente original. si @options[opciones de cifrado automático] && @connect_lock.sincronizar hacer crear_cifrador end elsif @options[opciones de cifrado automático].nil? @connect_lock.sincronizar hacer @encryptador = nulo end end end end |
#use(name) ⇒ Mongo::Client
El nuevo cliente comparte el clúster con el cliente original, y como resultado también comparte la instancia de supervisión y los suscriptores de eventos de supervisión.
Crea un nuevo cliente configurado para usar la base de datos con el nombre proporcionado y utilizando las otras opciones configuradas en este cliente.
773 774 775 |
# Archivo 'lib/mongo/client.rb', línea 773 def Usar(Nombre) con(database: Nombre) end |
#observar(pipeline = [], options = {}) ⇒ ChangeStream
Un flujo de cambios solo permite un nivel de consistencia de lectura "mayoría".
Este método asistente es preferible a ejecutar una agregación sin procesar con una etapa de $changeStream, con el fin de soportar la capacidad de reanudación.
Permite que los usuarios pidan que se envíen notificaciones para todos los cambios que se produzcan en el clúster del cliente.
1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 |
# Archivo 'lib/mongo/client.rb', línea 1142 def reloj(pipeline = [], = {}) return Usar(Database::ADMIN).reloj(pipeline, ) a menos que database.Nombre == Database::ADMIN = .dup [tipo_de_cursor] = tailable_await si [; tiempo_máximo_espera_ms] mongo::Colección::vista::ChangeStream.Nuevo( mongo::Colección::vista.Nuevo(sí mismo["#{comando de base de datos::}.aggregate"], {}, ), pipeline, mongo::Colección::vista::ChangeStream::clúster, ) end |
#con(new_options = nil) ⇒ Mongo::Client
Dependiendo de las opciones dadas, el cliente devuelto puede compartir el clúster con el cliente original o crearse con un nuevo clúster. Si se crea un nuevo clúster, los suscriptores de eventos de supervisión en el nuevo cliente se establecen en el conjunto por defecto de suscriptores de eventos y ninguno de los suscriptores en el cliente original se copia.
Crea un nuevo cliente con las opciones proporcionadas fusionadas sobre las opciones existentes de este cliente. Útil para cambios puntuales para elegir opciones específicas sin alterar el cliente original.
795 796 797 798 799 800 801 802 803 |
# Archivo 'lib/mongo/client.rb', línea 795 def con( = nulo) clonar.tocar hacer |Cliente| opciones = Cliente.( || opciones::Redactado.Nuevo) Cliente.reset_database! # No podemos usar el mismo clúster si algunas opciones que lo afectarían # Han cambiado. Cliente.reset_cluster!(supervisión: opciones[supervisión]) si (opciones) end end |
#with_session(options = {}) ⇒ Objeto
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Crea una sesión para usar en operaciones si es posible y la cede al bloque proporcionado.
Si se establece la opción :session, valida esa sesión y la utiliza. De lo contrario, si la implementación admite sesiones, se crea una nueva sesión y se usa. Cuando se crea una nueva sesión, ésta será implícita (el ciclo de vida lo gestiona el controlador) si se selecciona la opción :implicit, en caso contrario será explícita (el ciclo de vida lo gestiona la aplicación). Si la implementación no admite sesión, ciérralo en nil.
Al finalizar el bloque, si se creó la sesión implícitamente o se pasó una sesión implícita, la sesión finaliza, lo que la devuelve al grupo de sesiones disponibles.
1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 |
# Archivo 'lib/mongo/client.rb', línea 1199 def con_sesión( = {}) # RUBY-3174 volverá a habilitar esta protección; consulte #assert_not_closed. # assert_not_closed sesión = get_session() rendimiento sesión asegurar sesión.end_session si sesión && sesión.implicit? end |
#write_concern ⇒ Mongo::WriteConcern
Obtén el nivel de confirmación de escritura (write concern) para este cliente. Si no se proporciona ninguna opción, se utilizará por defecto un acuse de recibo de servidor único.
903 904 905 |
# Archivo 'lib/mongo/client.rb', línea 903 def write_concern @write_concern ||= Nivel de confirmación de escritura (write concern).Obtener([conformidad_de_lectura] || [guardar]) end |