Classificação: Mongo::Client
- Herda:
-
Objeto
- Objeto
- Mongo::Client
- Estendido por:
- Encaminhável
- Inclui:
- Logável
- Definido em:
- lib/mongo/ cliente.rb
Visão geral
O cliente é o ponto de entrada do driver e é o principal objeto com o qual haverá interação.
Colapsode resumo constante
- CRUD_OPTIONS =
As opções que não afetam o comportamento de um cluster e seus subcomponentes.
[ :auto_encryption_options, :database, :read, :read_concern, :write, :write_concern, :retry_reads, :max_read_retry, :read_retry_interval, :retry_writes, :max_write_retry, :max_adaptive_retry, :enable_overload_tartargeting, :timeout_ms, # Opções que não podem estar aqui atualmente: # # :server_selection_timeout # O tempo limite de seleção do servidor MongoDB é usado pelo construtor do cluster para descobrir # quanto tempo esperar pela verificação inicial no modo de compatibilidade, mas uma vez # o cluster é inicializado e não usa mais esse tempo limite. # Infelizmente, o seletor de servidor lê o tempo limite de seleção do servidor de # o cluster, e esse comportamento é exigido pelo Cluster#next_primary # que não aceita argumentos. Quando próximo_primary for removido, podemos revisar # usando o mesmo objeto de cluster com diferentes tempos limite de seleção de servidor. ].congelar
- VALID_OPTIONS =
Opções válidas do cliente.
%i[ app_name auth_mech auth_mech_properties auth_source auto_encryption_options bg_error_backtrace limpeza compressors direct_connection enable_overload_targetting Conecte connect_timeout database heartbeat_frequency id_generator load_balanced local_threshold logger log_prefix max_adaptive_retry max_connecting max_idle_time max_pool_size max_read_retry max_write_retry min_pool_size Monitoramento monitoring_io Senha Plataforma populator_io ler read_concern read_retry_interval replica_set resolv_options retry_reads retry_writes digitalizar 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 rastreamento truncate_logs utilizador wait_queue_timeout wrap_libraries escrever write_concern zlib_compression_level ].congelar
- VALID_COMPRESSORS =
Os algoritmos de compressão suportados pelo driver.
[ mongo::protocolo::Compactado::zstd, mongo::protocolo::Compactado::Snappy, mongo::protocolo::Compactado::zlib ].congelar
- VALID_SERVER_API_VERSIONS =
As versões conhecidas da API do servidor.
%w[ 1 ].congelar
Constantes incluídas do Loggable
Recolhimento do Resumo do atributo de instância
-
#cluster ➤ Mongo::Cluster
Somente leitura
Cluster O cluster de servidores para o cliente.
-
#database ➤ Mongo::Database
Somente leitura
Banco de dados O banco de dados de dados no qual o cliente está operando.
-
#encrypter } Mongo::Crypt::AutoEncrypter
Somente leitura
O objeto que encapsula o comportamento de criptografia automática.
-
#opções ➤ Hash
Somente leitura
Opções As opções de configuração.
-
#retry_policy ➤ Mongo::Retryable::RetryPolicy
Somente leitura
privado
A política de novas tentativas para backpressure e adaptativa.
Recolhimento do Resumo do método de classe
-
.canonicalize_ruby_options(opções) ➤ Objeto
privado
As propriedades do mecanismo de autenticação em minúsculas, se fornecidas, nas opções especificadas, convertem as opções em uma instância de Options::Redacted.
Recolhimento do Resumo do método de instância
-
#==(outros) ➤ verdadeiro, falso (também: #eql?)
Determine se este cliente é equivalente a outro objeto.
-
#[](collection_name, options = {}) ➤ Mongo::Collection
Obtenha um objeto de coleção para o nome da coleção fornecido.
-
#close ➤ true
Feche todas as conexões.
-
#close_encrypter ➤ true
Feche o criptografador e limpe os recursos de criptografia automática.
- #fechado? ➤ Booleano
- #cluster_options ➤ Objeto privado
-
#database_names(filter = {}, opts = {}) ➤ Array<String>
Obtenha os nomes de todos os bancos de dados.
-
#encryption_fields_map ➤ Hash | nada
privado
Retorna o hash do mapa de campo criptografado se fornecido ao criar o cliente.
-
#get_session(options = {}) ➤ Sessão | nada
privado
Retorna uma sessão para usar para operações, se possível.
-
#hash ➤ inteiro
Obtenha o valor de hash do cliente.
-
#initialize(addresses_or_uri, options = nil) ⇒ Cliente
construtor
Instancie um novo cliente de driver.
-
#inspecionar ➤ string
Obtenha uma inspeção do cliente como uma string.
-
#list_databases(filter = {}, name_only = false, opts = {}) ➤ Array<Hash>
Obtenha informações para cada banco de dados.
-
.<Mongo::Database>
Retorna uma lista de objetos Mongo::Database.
-
#max_read_retry ➤ Inteiro
privado
Obtenha o número máximo de vezes que o cliente pode tentar novamente uma operação de leitura ao usar novas tentativas de leitura legado .
-
#max_write_retry ➤ Inteiro
privado
Obtenha o número máximo de vezes que o cliente pode tentar novamente uma operação de gravação ao usar novas tentativas de gravação herdadas.
-
#monitoramento ➤ Monitoramento
privado
Monitoramento O monitoramento.
-
#read_concern ➤ Hash
Obtenha a preocupação de leitura para este cliente.
-
#read_preference ➤ BSON::Document
Obtenha a preferência de leitura a partir das opções passadas para o cliente.
-
#read_retry_interval ➤ Flutuante
privado
Obtenha o intervalo, em segundos, em que as tentativas de leitura ao usar tentativas de leitura herdadas.
-
#reconectar ➤ verdadeiro
Reconectar o cliente.
-
#reset_cluster!(monitoramento: nil) ⇒ Objeto
privado
Substitui o cluster deste cliente por uma nova instância criada a partir das opções atuais do cliente.
-
#reset_database! ⇒ Object
privado
Substitui o banco de dados deste cliente por uma nova instância criada a partir das opções atuais do cliente.
-
#server_selector ➤ Mongo::ServerSelector
Obtenha o seletor de servidor.
-
#start_session(options = {}) ➤ Session
Inicie uma sessão.
-
#resumo ➤ string
Obtenha um resumo do estado do cliente.
-
#timeout_ms ⇒ Integer | nil
privado
Valor da opção timeout_ms se definido.
-
#timeout_sec ⇒ Float | nil
privado
Valor da opção timeout_ms convertido em segundos.
-
# traçar ➤ Rastreamento::Tracer | nada
Obtenha o rastreador configurado para este cliente.
-
#update_options(new_options) ➤ Hash
privado
Atualiza as opções deste cliente a partir de new_options, validando todas as opções.
-
#use(name) ➤ Mongo::Client
Cria um novo cliente configurado para utilizar o banco de dados com o nome fornecido e utilizando as outras opções configuradas neste cliente.
-
#watch(pipeline = [], options = {}) ➤ ChangeStream
Permite que os usuários solicitem que sejam enviadas notificações para todas as alterações que ocorrem no cluster do cliente.
-
#com(new_options = nil) ➤ Mongo::Client
Cria um novo cliente com as opções passadas mescladas sobre as opções existentes deste cliente.
-
#with_session(opções = {}) ➤ Objeto
privado
Cria uma sessão para usar para operações, se possível, e a gera para o bloco fornecido.
-
#write_concern ➤ Mongo::WriteConcern
Obtenha a write concern para esse cliente.
Métodos incluídos no Loggable
#log_debug, #log_error, #log_fatal, #log_info, #log_WARN, #logger
Detalhes do construtor
#initialize(addresses_or_uri, options = nil) ⇒ Cliente
Instancie um novo cliente de driver.
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 642 643 644 645 646 647 648 649 650 651 652 653 654 655 |
# File 'lib/mongo/ cliente.rb', linha 551 def inicializar(endereços_or_uri, = nada) = ? .dup : {} processado = process_addresses(endereços_or_uri, ) uri = processado[:uri] Endereços = processado[:addresses] = processado[:opções] # Se o URI for um URI SRV, observe isto para que possamos começar # Pesquisa SRV se a topologia for um cluster fragmentado. srv_uri = uri se uri.is_a?(URI::Protocolo SRV) = auto.classe.() # A versão da API do servidor é especificada para ser uma string. # No entanto, é muito trabalhoso sempre fornecer o número 1 como uma string, #, portanto, convertido para o tipo de string aqui. se (server_api = [:server_api]) && server_api.is_a?(Hash) server_api = Opções::Editado.Novo(server_api) se (Versão = server_api[:version]).is_a?(Inteiro) [:server_api] = server_api.mesclar(versão: Versão.to_s) end end # Tratamento especial para sdam_proc, pois ele é usado apenas durante o cliente # construção sdam_proc = .excluir(:sdam_proc) # Para gssapi service_name, a opção padrão é fornecida em um hash # (um nível abaixo do nível superior). = () .cada fazer |k, v| default_v = [k] v = default_v.mesclar(v) se default_v.is_a?(Hash) [k] = v end = .keys.cada fazer |k| .excluir(k) se [k].nada? end @opções = () # Suporte ao objeto WriteConcern # if @options[:write_concern].is_a?(WriteConcern::Base) # # Cache a instância para que não a reconstruímos desnecessariamente. # @write_concern = @options[:write_concern] # @options[:write_concern] = @write_concern.options # end @opções.congelar (Endereços, is_srv: uri.is_a?(URI::Protocolo SRV)) = @opções.dup .excluir(:server_api) @database = Database.Novo(auto, @opções[:database], ) # Defina temporariamente o monitoramento para que as assinaturas de evento possam ser # configurado sem que haja um cluster @monitoring = Monitoramento.Novo(@opções) sdam_proc.Chame(auto) se sdam_proc @connect_lock = Mutex.Novo @retry_policy = build_retry_policy @connect_lock.sincronizar fazer @cluster = cluster.Novo( Endereços, @monitoring, .mesclar(srv_uri: srv_uri) ) end começar # Desconfigure o monitoramento, ele será retirado do cluster a partir de agora remove_instance_variable(:@monitoring) se @opções[:auto_encryption_options] @connect_lock.sincronizar fazer build_encrypter end end # O ScriptError é salvo além do StandardError porque # Mongo::Crypt::Binding gera um LoadError quando libmongocrypt não pode ser # encontrado. Sem ele, o cluster construído acima seria deixado aberto, vazando # seus threads de pool de conexões . salvar StandardError, Erro de script começar @cluster.Fechar salvar StandardError => e log_service("Erro ao fechar o cluster no manipulador de exceções do construtor do cliente: #{e.classe}: #{e}") # Solte esta exceção para que a exceção original seja gerada end aumentar end Método a menos que block_given? começar rendimento(auto) garantir Fechar end end |
Detalhes do atributo da instância
#cluster ➤ Mongo::Cluster (readonly)
Retorna cluster O cluster de servidores para o cliente.
143 144 145 |
# File 'lib/mongo/ cliente.rb', linha 143 def cluster @cluster end |
#database ➤ Mongo::Database (readonly)
Retorna banco de dados O banco de dados no qual o cliente está operando.
146 147 148 |
# File 'lib/mongo/ cliente.rb', linha 146 def database @database end |
#encrypter ➤ Mongo::Crypt::AutoEncrypter (somente leitura)
Retorna o objeto que encapsula o comportamento de criptografia automática.
153 154 155 |
# File 'lib/mongo/ cliente.rb', linha 153 def criptografador @encrypter end |
#opções ➤ Hash (somente leitura)
Retorna opções As opções de configuração.
149 150 151 |
# File 'lib/mongo/ cliente.rb', linha 149 def @opções end |
#retry_policy ⇒ Mongo::Retryable::RetryPolicy (readonly)
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorna a política de repetição para contrapressão e novas tentativas adaptáveis.
158 159 160 |
# File 'lib/mongo/ cliente.rb', linha 158 def retry_policy @retry_policy end |
Detalhes do método de classe
.canonicalize_ruby_options(opções) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
As propriedades do mecanismo de autenticação em minúsculas, se fornecidas, nas opções especificadas, convertem as opções em uma instância de Options::Redacted.
1235 1236 1237 1238 1239 1240 1241 1242 |
# File 'lib/mongo/ cliente.rb', linha 1235 def () Opções::Editado.Novo(Hash[.map fazer |k, v| se [ :auth_mech_properties, 'auth_mech_properties' ].incluir?(k) && v v = Hash[v.map { |pk, pv| [ pk.downcase, pv ] }] end [ k, v ] end]) end |
Detalhes do método de instância
#==(outro) ➤ true, false Também conhecido como: eql?
Determine se este cliente é equivalente a outro objeto.
186 187 188 189 190 |
# File 'lib/mongo/ cliente.rb', linha 186 def ==(Outro) Método false a menos que Outro.is_a?(Cliente) cluster == Outro.cluster && == Outro. end |
#[](collection_name, options = {}) ➤ Mongo::Collection
Obtenha um objeto de coleção para o nome da coleção fornecido.
204 205 206 |
# File 'lib/mongo/ cliente.rb', linha 204 def [](collection_name, = {}) database[collection_name, ] end |
#close ➤ true
Feche todas as conexões.
936 937 938 939 940 941 942 |
# File 'lib/mongo/ cliente.rb', linha 936 def Fechar @connect_lock.sincronizar fazer @closed = true do_close end true end |
#close_encrypter ➤ true
Feche o criptografador e limpe os recursos de criptografia automática.
947 948 949 950 951 |
# File 'lib/mongo/ cliente.rb', linha 947 def close_encrypter @encrypter.Fechar se @encrypter true end |
#fechado? ➤ Booleano
927 928 929 |
# File 'lib/mongo/ cliente.rb', linha 927 def fechado? !!@closed end |
#cluster_options ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 |
# File 'lib/mongo/ cliente.rb', linha 658 def # Compartilhamos clusters quando um novo cliente com CRUD_OPTIONS diferente # é solicitado; portanto, o cluster não deve receber nenhum desses # opções na instanciação .rejeitar fazer |chave, _value| CRUD_OPTIONS.incluir?(chave.to_sym) end.mesclar( # mas precisa colocar o banco de dados de volta para autenticação... database: [:database], # Coloque essas opções para compatibilidade com legados, mas observe que # seus valores no cliente e no cluster não precisam corresponder - # os aplicativos devem ler esses valores do cliente, não do cluster max_read_retrys: [:max_read_retry], read_retry_interval: [:read_retry_interval], rastreador: rastreador ).toque fazer || # Se o cliente já tiver um cluster, encaminhe srv_uri para o novo # cluster para manter o monitoramento SRV. Se o cliente for novo, # seu construtor define srv_uri manualmente. .update(srv_uri: cluster.[:srv_uri]) se cluster end end |
#database_names(filter = {}, opts = {}) ➤ Array<String>
Obtenha os nomes de todos os bancos de dados.
1005 1006 1007 |
# File 'lib/mongo/ cliente.rb', linha 1005 def database_names(filtro, filtro = {}, opciona = {}) list_databases(filtro, filtro, true, opciona).coletar { |informações| informações['nome'] } end |
#encryption_fields_map ➤ Hash | nada
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorna o hash do mapa de campo criptografado se fornecido ao criar o cliente.
1249 1250 1251 |
# File 'lib/mongo/ cliente.rb', linha 1249 def encryption_fields_map @encrypted_fields_map ||= @opções.buscar(:auto_encryption_options, {})[:encrypted_fields_map] end |
#get_session(options = {}) ➤ Sessão | nada
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorna uma sessão para usar para operações, se possível.
Se a opção :session estiver definida, valida essa sessão e a retorna. Caso contrário, se o sistema suportar sessões, crie uma nova sessão e a retorne. Quando uma nova sessão é criada, a sessão será implícita (o ciclo de vida é gerenciado pelo driver) se a opção :implicit for fornecida, caso contrário, a sessão será explícita (o ciclo de vida gerenciado pelo aplicativo). Se o sistema não suportar sessão, retornará zero.
1193 1194 1195 1196 1197 |
# File 'lib/mongo/ cliente.rb', linha 1193 def get_session( = {}) get_session!() salvar Erro::SessionsNotSupported nada end |
#hash ➤ inteiro
Obtenha o valor de hash do cliente.
216 217 218 |
# File 'lib/mongo/ cliente.rb', linha 216 def hash [ cluster, ].hash end |
#inspecionar ➤ string
Obtenha uma inspeção do cliente como uma string.
720 721 722 |
# File 'lib/mongo/ cliente.rb', linha 720 def inspecionar "#<Mongo::Client:0x#{object_id} cluster=#{cluster.resume}>" end |
#list_databases(filter = {}, name_only = false, opts = {}) ➤ Array<Hash>
Obtenha informações para cada banco de dados.
See https://mongodb.com/pt-br/docs/manual/reference/command/listDatabases/
for more information and usage.
1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 |
# File 'lib/mongo/ cliente.rb', linha 1036 def list_databases(filtro, filtro = {}, name_only = false, opciona = {}) cmd = { bancos de dados de lista: 1 } cmd[:nameOnly] = !!name_only cmd[:filter] = filtro, filtro a menos que filtro, filtro.vazio? cmd[: authorizedDatabases] = true se opciona[: authorized_databases] Usar(Database::ADMIN) .database .read_command(cmd, opciona.mesclar(op_name: 'listDatabases')) .primeiro[Database::Bancos de dados] end |
#list_mongo_databases(filter = {}, opts = {}) ➤ Array <Mongo::Database>
Retorna uma lista de objetos Mongo::Database.
1062 1063 1064 1065 1066 |
# File 'lib/mongo/ cliente.rb', linha 1062 def list_mongo_databases(filtro, filtro = {}, opciona = {}) database_names(filtro, filtro, opciona).coletar fazer |name| Database.Novo(auto, name, ) end end |
#max_read_retry ➤ Inteiro
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Obtenha o número máximo de vezes que o cliente pode tentar novamente uma operação de leitura ao usar novas tentativas de leitura legado .
688 689 690 |
# File 'lib/mongo/ cliente.rb', linha 688 def max_read_retry [:max_read_retry] || cluster::MAX_READ_RETRIES end |
#max_write_retry ➤ Inteiro
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Obtenha o número máximo de vezes que o cliente pode tentar novamente uma operação de gravação ao usar novas tentativas de gravação herdadas.
708 709 710 |
# File 'lib/mongo/ cliente.rb', linha 708 def max_write_retry [:max_write_retry] || cluster::MAX_WRITE_RETRIES end |
#monitoring ⇒ Monitoring
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Monitoramento de retornos O monitoramento.
168 169 170 171 172 173 174 |
# File 'lib/mongo/ cliente.rb', linha 168 def Monitoramento se cluster cluster.Monitoramento mais @monitoring end end |
#read_concern ➤ Hash
Obtenha a preocupação de leitura para este cliente.
910 911 912 |
# File 'lib/mongo/ cliente.rb', linha 910 def read_concern [:read_concern] end |
#read_preference ➤ BSON::Document
Obtenha a preferência de leitura a partir das opções passadas para o cliente.
768 769 770 |
# File 'lib/mongo/ cliente.rb', linha 768 def read_preference @read_preference ||= [:read] end |
#read_retry_interval ➤ Flutuante
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Obtenha o intervalo, em segundos, em que as tentativas de leitura ao usar tentativas de leitura herdadas.
698 699 700 |
# File 'lib/mongo/ cliente.rb', linha 698 def read_retry_interval [:read_retry_interval] || cluster::READ_RETRY_INTERVAL end |
#reconectar ➤ verdadeiro
Reconectar o cliente.
961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 |
# File 'lib/mongo/ cliente.rb', linha 961 def reconectar Endereços = cluster.Endereços.map(&:to_s) @connect_lock.sincronizar fazer começar do_close salvar StandardError nada end @cluster = cluster.Novo(Endereços, Monitoramento, ) build_encrypter se @opções[:auto_encryption_options] @closed = false end true end |
#reset_cluster!(monitoramento: nil) ⇒ Object
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Substitui o cluster deste cliente por uma nova instância criada a partir das opções atuais do cliente. Usado por #with para que um cliente reconfigurado não compartilhe seu cluster com o cliente do qual foi clonado.
894 895 896 897 898 899 900 |
# File 'lib/mongo/ cliente.rb', linha 894 def reset_cluster!(monitoramento: nada) @cluster = cluster.Novo( cluster.Endereços.map(&:to_s), Monitoramento || Monitoramento.Novo, ) end |
#reset_database! ⇒ Object
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Substitui o banco de dados deste cliente por uma nova instância criada a partir das opções atuais do cliente. Usado por #with para que um cliente reconfigurado não compartilhe seu banco de dados com o cliente do qual foi clonado.
882 883 884 |
# File 'lib/mongo/ cliente.rb', linha 882 def reset_database! @database = Database.Novo(auto, [:database], ) end |
#server_selector ➤ Mongo::ServerSelector
Obtenha o seletor de servidor. Ele usa a read preference definida nas opções do cliente ou padroniza para um seletor de servidor Primary.
746 747 748 749 750 751 752 |
# File 'lib/mongo/ cliente.rb', linha 746 def server_selector @server_selector ||= se read_preference ServerSelector.obter(read_preference) mais ServerSelector.Principal end end |
#start_session(options = {}) ➤ Session
Uma Sessão não pode ser usada por vários threads ao mesmo tempo; objetos de sessão não são seguros para threads.
Inicie uma sessão.
Se a implantação não suportar sessões, aumenta Mongo::Error::InvalidSession. Esta exceção também pode ser gerada quando o driver não está conectado a um servidor de obtenção de dados, por exemplo , durante o failover.
1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 |
# File 'lib/mongo/ cliente.rb', linha 1087 def start_session( = {}) session = get_session!(.mesclar(implícito: false)) se block_given? começar rendimento session garantir session.end_session end mais session end end |
#resumo ➤ string
O formato e o layout exatos da string de resumo retornada não fazem parte da API pública do driver e podem ser alterados a qualquer momento.
Obtenha um resumo do estado do cliente.
732 733 734 |
# File 'lib/mongo/ cliente.rb', linha 732 def Resumo "#<Client cluster=#{cluster.resume}>" end |
#timeout_ms ⇒ Integer | nil
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorna o valor da opção timeout_ms se definido.
1255 1256 1257 |
# File 'lib/mongo/ cliente.rb', linha 1255 def timeout_ms @opções[:timeout_ms] end |
#timeout_sec ⇒ Float | nil
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorna o valor da opção timeout_ms convertido em segundos.
1261 1262 1263 1264 1265 1266 1267 |
# File 'lib/mongo/ cliente.rb', linha 1261 def timeout_sec se timeout_ms.nada? nada mais timeout_ms / 1_000.0 end end |
#traçar ➤ Rastreamento::Tracer | nada
Obtenha o rastreador configurado para este cliente.
1272 1273 1274 1275 1276 1277 1278 1279 |
# File 'lib/mongo/ cliente.rb', linha 1272 def rastreador rastreamento_opts = @opções[:trasing] || {} @tracer ||= Rastreamento.create_tracer( habilitado: rastreamento_opts[:enabled], query_text_max_long: rastreamento_opts[:query_text_max_longitude], omel_tracer: rastreamento_opts[:tracer] ) end |
#update_options(new_options) ⇒ Hash
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Atualiza as opções deste cliente a partir de new_options, validando todas as opções.
As novas opções podem ser transformadas de acordo com várias regras. O hash final das opções realmente aplicadas ao cliente é retornado.
Se as opções falharem na validação, este método poderá avisar ou gerar uma exceção. Se esse método gerar uma exceção, o cliente deverá ser descartado (da mesma forma que se um construtor levantasse uma exceção).
833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 |
# File 'lib/mongo/ cliente.rb', linha 833 def () = @opções = auto.classe.( || {}) ().toque fazer |opciona| # Nossas opções estão congeladas = @opções.dup .excluir(:write) se [:write] && opciona[:write_concern] .excluir(:write_concern) se [:write_concern] && opciona[:write] .update(opciona) @opções = .congelar # A política de novas tentativas é criada a partir das opções, portanto, um cliente criado por # #with precisa de sua própria política quando a opção for alterada. se @opções[:max_adaptive_retry] != [:max_adaptive_retry] @retry_policy = build_retry_policy end = @opções[:auto_encryption_options] != [:auto_encryption_options] # Se houver novas auto_encryption_options, crie um novo criptografador. # Caso contrário, permita que o novo cliente compartilhe um criptografador com o #cliente original. # # Se auto_encryption_options forem nil, defina @encrypter como nil, mas não # feche o criptografador porque ele ainda pode ser usado pelo cliente original . se @opções[:auto_encryption_options] && @connect_lock.sincronizar fazer build_encrypter end elsif @opções[:auto_encryption_options].nada? @connect_lock.sincronizar fazer @encrypter = nada end end end end |
#use(name) ➤ Mongo::Client
O novo cliente compartilha o cluster com o cliente original e, como resultado, também compartilha a instância de monitoramento e os assinantes de eventos de monitoramento.
Cria um novo cliente configurado para utilizar o banco de dados com o nome fornecido e utilizando as outras opções configuradas neste cliente.
787 788 789 |
# File 'lib/mongo/ cliente.rb', linha 787 def Usar(name) com(database: name) end |
#watch(pipeline = [], options = {}) ➤ ChangeStream
Um fluxo de alterações permite apenas a read concern de "maioria".
Este método auxiliar é preferível a executar uma agregação bruta com um estágio $changeStream, com a finalidade de apoiar a capacidade de retomada.
Permite que os usuários solicitem que sejam enviadas notificações para todas as alterações que ocorrem no cluster do cliente.
1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 |
# File 'lib/mongo/ cliente.rb', linha 1162 def assistir(gasoduto = [], = {}) Método Usar(Database::ADMIN).assistir(gasoduto, ) a menos que database.name == Database::ADMIN = .dup [:cursor_type] = :tailable_await se [:max_await_time_ms] mongo::collection::Vista::Change stream.Novo( mongo::collection::Vista.Novo(auto["#{Database::COMMAND}.aggregate"], {}, ), gasoduto, mongo::collection::Vista::Change stream::cluster, ) end |
#com(new_options = nil) ➤ Mongo::Client
Dependendo das opções fornecidas, o cliente retornado pode compartilhar o cluster com o cliente original ou ser criado com um novo cluster. Se um novo cluster for criado, os assinantes de eventos de monitoramento no novo cliente serão definidos para o conjunto de assinantes de eventos padrão e nenhum dos assinantes no cliente original será copiado.
Cria um novo cliente com as opções passadas mescladas sobre as opções existentes deste cliente. Útil para eventos únicos para alterar opções específicas sem alterar o cliente original.
809 810 811 812 813 814 815 816 817 |
# File 'lib/mongo/ cliente.rb', linha 809 def com( = nada) clonar.toque fazer |Cliente| opciona = Cliente.( || Opções::Editado.Novo) Cliente.reset_database! # Não podemos usar o mesmo cluster se algumas opções que o afetariam # foram alterados. Cliente.reset_cluster!(monitoramento: opciona[:monitoring]) se (opciona) end end |
#with_session(opções = {}) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Cria uma sessão para usar para operações, se possível, e a gera para o bloco fornecido.
Se a opção :session estiver definida, valida essa sessão e a utiliza. Caso contrário, se o sistema suportar sessões, crie uma nova sessão e use-a. Quando uma nova sessão é criada, a sessão será implícita (o ciclo de vida é gerenciado pelo driver) se a opção :implicit for fornecida, caso contrário, a sessão será explícita (o ciclo de vida gerenciado pelo aplicativo). Se a implantação não suportar sessão, produz zero para o bloco.
Quando o bloqueio terminar, se a sessão foi criada e foi implícita, ou se uma sessão implícita foi passada, a sessão é encerrada, o que a retorna para o pool de sessões disponíveis.
1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 |
# File 'lib/mongo/ cliente.rb', linha 1219 def with_session( = {}) # RUBY-3174 reativará esta proteção; consulte #assert_not_closed. # assert_not_closed session = get_session() rendimento session garantir session.end_session se session && session.implícito? end |
#write_concern ➤ Mongo::WriteConcern
Obtenha a write concern para esse cliente. Se nenhuma opção tiver sido fornecida, será usada uma confirmação de servidor único padrão.
923 924 925 |
# File 'lib/mongo/ cliente.rb', linha 923 def write_concern @write_concern ||= WriteConcern.obter([:write_concern] || [:write]) end |