Classificação: Mongo::Servidor::Descrição

Herda:
Objeto
  • Objeto
mostrar tudo
Definido em:
lib/mongo/ servidor/description.rb,
lib/mongo/ servidor/description/features.rb,
lib/mongo/ servidor/description/load_balancer.rb

Visão geral

Representa uma descrição do servidor, preenchido pelo resultado do comando hello .

Observação: servidores desconhecidos não têm versões de fio, mas, por motivos legado , retornamos 0 para min_wire_version e max_wire_version de qualquer servidor que não os tenha. Atualmente, o driver às vezes constrói comandos quando o servidor é desconhecido, portanto, as referências a min_wire_version e max_wire_version não devem ser nulas. Quando o comportamento do driver é alterado (https://jira.mongodb.org/browse/RUBY-1805), isso pode não ser mais necessário.

Desde:

  • 2.0.0

Definido sob namespace

Classes: Recursos, LoadBalancer

Colapsode resumo constante

arbiter =
Obsoleto.

Constante para ler informações de árbitro de configuração.

Desde:

  • 2.0.0

'arbiterOnly'
Árbitros =

Constante para ler informações de árbitros da configuração.

Desde:

  • 2.0.0

'Árbitros'
OCULTO =

Constante para ler informações ocultas da configuração.

Desde:

  • 2.0.0

'escondida'
HOSTS =

Constante para ler informações de hosts da configuração.

Desde:

  • 2.0.0

'hosts'
MESSAGE =
Obsoleto.

Constante para a chave para o valor da mensagem.

Desde:

  • 2.0.0

'mensagem'
MONGOS_MSSAGE =
Obsoleto.

Constante para a mensagem que indica um cluster fragmentado.

Desde:

  • 2.0.0

'isdbgrade'
REPLICA_SET =
Obsoleto.

Constante para determinar servidores fantasma.

Desde:

  • 2.0.0

'isreplicaset'
MAX_BSON_OBJECT_SIZE =

Constante para ler informações de tamanho máximo de BSON da configuração.

Desde:

  • 2.0.0

'maxBsonObjectSize'
MAX_MSSAGE_BYTES =

Constante para ler informações de tamanho máximo de mensagem de config.

Desde:

  • 2.0.0

'maxMessageSizeBytes'
MAX_WIRE_VERSION =

Constante para a versão máxima do fio.

Desde:

  • 2.0.0

'maxWireVersion'
MIN_WIRE_VERSION =

Constante para a versão mínima do fio.

Desde:

  • 2.0.0

'minWireVersion'
MAX_WRITE_BATCH_SIZE =

Constante para ler o tamanho máximo do lote de gravação.

Desde:

  • 2.0.0

'maxWriteBatchSize'
LAST_WRITE =

Constante para o subdocumento lastWrite.

Desde:

  • 2.4.0

'lastWrite'
LAST_WRITE_DATE =

Constante para o campo lastWriteDate no subdocumento lastWrite.

Desde:

  • 2.4.0

'lastWriteDate'
eu =

Constante para ler o campo me .

Desde:

  • 2.1.0

'eu'
DEFAULT_MAX_WRITE_BATCH_SIZE =

Tamanho máximo do lote de gravação padrão.

Desde:

  • 2.0.0

1000
LGACY_WIRE_VERSION =
Obsoleto.

Será removido em 3.0.

A versão legado do protocolo de conexão .

Desde:

  • 2.0.0

0
Passiva =

Constante para ler informações passivas da configuração.

Desde:

  • 2.0.0

'Passiva'
Passivos =

Constante para ler a lista de servidor passivos.

Desde:

  • 2.0.0

'Passivos'
PRIMARY =
Obsoleto.

Constante para ler informações primárias da configuração.

Desde:

  • 2.0.0

'isMaster'
PRIMARY_HOST =

Constante para ler o campo de host primário da configuração.

Desde:

  • 2.5.0

'Principal'
SECUNDÁRIO =
Obsoleto.

Constante para ler informações secundárias da configuração.

Desde:

  • 2.0.0

'secundário'
set_name =

Constante para ler informações de nome do conjunto de réplicas da configuração.

Desde:

  • 2.0.0

'nome do conjunto'
TAGS =

Constante para ler informações de tags da configuração.

Desde:

  • 2.0.0

'tags'
ELECTION_ID =

Constante para ler informações electionId da configuração.

Desde:

  • 2.1.0

'electionId'
set_VERSION =

Constante para ler informações setVersion da configuração.

Desde:

  • 2.2.2

'setVersion'
LOCAL_TIME =

Constante para ler informações de localTime da configuração.

Desde:

  • 2.1.0

'hora local'
Operation_time =

Constante para ler informações de operationTime da configuração.

Desde:

  • 2.5.0

'tempo de operação'
LOGical_SESSION_TIMEOUT_MINUSES =

Constante para ler informações logicalSessionTimeoutMinutes de config.

Desde:

  • 2.5.0

'logicalSessionTimeoutMinutes'
CONNECTION_ID =

Essa constante faz parte de uma API privada. Você deve evitar usar essa constante, se possível, pois ela pode ser removida ou alterada no futuro.

Constante para ler informações connectionId da configuração.

Desde:

  • 2.0.0

'ID de conexão'
EXCLUDE_FOR_COMPARISON =

Campos a serem excluídos ao comparar duas descrições.

Desde:

  • 2.0.6

[ LOCAL_TIME,
LAST_WRITE,
operation_time,
(operação)::CLUSTER_TIME,
CONNECTION_ID, ].congelar
SERVER_VERSION_WIRE_VERSION_MAP =

Essa constante faz parte de uma API privada. Você deve evitar usar essa constante, se possível, pois ela pode ser removida ou alterada no futuro.

Desde:

  • 2.0.0

{
  '8.2' => 27,
  '8.0' => 25,
  '7.0' => 21,
  '6.0' => 17,
  '5.2' => 15,
  '5.1' => 14,
  '5.0' => 12,
  '4.4' => 9,
  '4.2' => 8,
}.congelar

Recolhimento do Resumo do atributo de instância

Recolhimento do Resumo do método de instância

Detalhes do construtor

#initialize(address, config = {}, average_round_trip_time: nil, minimum_round_trip_time:, 0 load_balancer: false, force_load_balancer: false) ➤ Descrição

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.

Instale a nova descrição do servidor a partir do resultado do comando hello ou crie uma descrição de espaço reservado para os servidores Unknown e LoadBalancer.

Exemplos:

Instancie a nova descrição.

Description.new(address, { 'isWritablePrimary' => true }, 0.5)

Parâmetros:

  • endereço (Endereço)

    O endereço do servidor .

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

    O resultado do comando hello.

  • average_round_trip_time (Flutuante) (padrão para: nil)

    O tempo médio móvel (seg) que o comando hello levou para ser concluído.

  • minimum_round_trip_time (Flutuante) (padrão para: 0)

    O tempo mínimo de ida e volta dos dez últimos comandos de hello.

  • load_balancer (verdadeiro | falso) (padrão para: false)

    Se o servidor é tratado como um balanceador de carga .

  • force_load_balancer (verdadeiro | falso) (padrão para: false)

    Se o servidor é forçado a ser um balanceador de carga .

Desde:

  • 2.0.0



216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
# Arquivo 'lib/mongo/ servidor/description.rb', linha 216

def inicializar(endereço, config = {}, average_round_trip_time: nada,
               minimum_round_trip_time: 0, load_balancer: false,
               force_load_balancer: false)
  @address = endereço
  @config = config
  @load_balancer = !!load_balancer
  @force_load_balancer = !!force_load_balancer
  @features = Características.Novo(wire_versions, eu || @address.to_s)
  @average_round_trip_time = average_round_trip_time
  @minimum_round_trip_time = minimum_round_trip_time
  @last_update_time = Hora.agora.congelar
  @last_update_monotime = Utilidades.monotonic_time

  # Quando a opção loadBalanced=true URI estiver definida, o motorista recusará
  # para funcionar se o servidor com o qual ele se comunica não definir serviceId
  # na resposta ismaster/hello.
  #
  # No momento, não podemos executar uma configuração adequada do balanceador de carga em evergreen
  #
  # Portanto, quando a opção connect=:load_balanced Ruby é usada
  # da opção loadBalanced=true URI, se serviceId não estiver definido em
  # resposta ismaster/hello, o driver fabrica um serviceId e
  # continua tratando um servidor que não se identifica como sendo
  # atrás de um balanceador de carga como um servidor que está atrás de um balanceador de carga.
  #
  # 5.0+ servidores devem fornecer topologyVersion.processId qual
  # é específico para a instância de processo específica. Podemos usar isso
  campo # como proxy para serviceId.
  #
  # Se a topologyVersion não for fornecida por qualquer motivo, nós
  # fabricar um serviceId localmente.
  #
  # Em ambos os casos, um serviceId fornecido por um servidor real por trás
  # um balanceador de carga deve ser um BSON::ObjectId. O falso
  # os IDs de serviço são strings, para diferenciá-los dos reais.
  # Em particular, processId também é um BSON::ObjectId, mas será
  # mapeado para uma string para maior clareza de que esta é uma ID de serviço falsa.
  #
  # TODO: Remova isto quando https://jira.mongodb.org/browse/RUBY-2881 terminar.
  se load_balancer && tudo bem? && !service_id
    a menos que force_load_balancer
      aumentar Erro::missingServiceId,
            "O servidor em #{endereço.seed} não forneceu uma ID de serviço na resposta do handshake"
    end

    false_service_id = se process_id = topology_version && topology_version['processId']
                        "process:#{process_id}"
                      mais
                        "falso:#{random((2**32) - 1) + 1}"
                      end
    @config = @config.mesclar('serviceId' => false_service_id)
  end

  Método a menos que mongo::Lint.habilitado?

  # preencher previamente variáveis de instância de cache
  hosts
  Árbitros
  Passivos
  topology_version

  congelar
end

Detalhes do atributo da instância

#endereçoEndereço (somente leitura)

Retorna endereço O endereço do servidor.

Retorna:

  • (Endereço)

    endereço O endereço do servidor.

Desde:

  • 2.0.0



281
282
283
# Arquivo 'lib/mongo/ servidor/description.rb', linha 281

def endereço
  @address
end

#average_round_trip_time ➤ Flutuante (somente leitura)

Retorna O tempo médio móvel que a chamada de saudação levou para ser concluída.

Retorna:

  • (Flutuante)

    O tempo médio móvel que a chamada de saudação levou para ser concluída.

Desde:

  • 2.0.0



297
298
299
# Arquivo 'lib/mongo/ servidor/description.rb', linha 297

def average_round_trip_time
  @average_round_trip_time
end

#configHash (somente leitura)

Retorna o resultado real do comando hello.

Retorna:

  • (Hash)

    O resultado real do comando hello .

Desde:

  • 2.0.0



284
285
286
# Arquivo 'lib/mongo/ servidor/description.rb', linha 284

def config
  @config
end

#featureRecursos (somente leitura)

Retorna recursos Os recursos do servidor.

Retorna:

  • (Recursos)

    funcionalidades As funcionalidades do servidor.

Desde:

  • 2.0.0



294
295
296
# Arquivo 'lib/mongo/ servidor/description.rb', linha 294

def características
  @features
end

#last_update_monotime ➤ Flutuante (somente leitura)

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.

Hora em que esta descrição de servidor foi criada de acordo com o relógio monotônico.

Retorna:

  • (Flutuante)

    Tempo monotônico de criação da descrição do servidor MongoDB.

Veja também:

  • para mais detalhes

Desde:

  • 2.0.0



842
843
844
# Arquivo 'lib/mongo/ servidor/description.rb', linha 842

def last_update_monotime
  @last_update_monotime
end

#last_update_time ➤ Hora (somente leitura)

Observação:

Desta vez não indica quando uma verificação de servidor bem-sucedida

Hora em que esta descrição de servidor foi criada.

concluído, porque marcar um servidor desconhecido atualiza sua descrição e last_update_time. Use Server#last_scan para descobrir quando o servidor foi verificado pela última vez pelo Monitor.

Retorna:

  • (Tempo)

    Hora de criação da descrição do servidor MongoDB.

Desde:

  • 2.7.0



833
834
835
# Arquivo 'lib/mongo/ servidor/description.rb', linha 833

def last_update_time
  @last_update_time
end

#minimum_round_trip_timeFlutuante (somente leitura)

Retorna o tempo mínimo que as dez últimas chamadas de hello levaram para serem concluídas.

Retorna:

  • (Flutuante)

    O tempo mínimo que as dez últimas chamadas de hello levaram para serem concluídas.

Desde:

  • 2.0.0



301
302
303
# Arquivo 'lib/mongo/ servidor/description.rb', linha 301

def minimum_round_trip_time
  @minimum_round_trip_time
end

Detalhes do método de instância

#==(outro) ➤ true, false Também conhecido como: eql?

Verifique a igualdade de duas descrições.

Exemplos:

Verifique a igualdade da descrição.

description == other

Parâmetros:

  • Outro (Objeto)

    A outra descrição.

Retorna:

  • (verdadeiro, falso)

    Se os objetos são iguais.

Desde:

  • 2.0.6



866
867
868
869
870
871
872
873
# Arquivo 'lib/mongo/ servidor/description.rb', linha 866

def ==(Outro)
  Método false se auto.classe != Outro.classe
  Método false se desconhecido? || Outro.desconhecido?

  (config.keys + Outro.config.keys).uniq.todos? fazer |k|
    config[k] == Outro.config[k] || EXCLUDE_FOR_COMPARISON.incluir?(k)
  end
end

#árbitro?true, false

Retorna se este servidor é um árbitro, de acordo com a especificação do SDAM.

Exemplos:

O servidor é um árbitro?

description.arbiter?

Retorna:

  • (verdadeiro, falso)

    Se o servidor for um árbitro.

Desde:

  • 2.0.0



311
312
313
314
315
# Arquivo 'lib/mongo/ servidor/description.rb', linha 311

def árbitro?
  tudo bem? &&
    config['arbiterOnly'] == true &&
    !!config['setName']
end

#arbiters } Array<String>

Obtenha uma lista de todos os árbitros no conjunto de réplicas.

Exemplos:

Obtenha os árbitros no conjunto de réplicas.

description.arbiters

Retorna:

  • (Array<String>)

    Os árbitros no conjunto.

Desde:

  • 2.0.0



325
326
327
# Arquivo 'lib/mongo/ servidor/description.rb', linha 325

def Árbitros
  @arbiters ||= (config[Árbitros] || []).map { |s| s.downcase }
end

#data_Bearing?true, false

Se essa descrição é de um servidor com dados (autônomo, mongos, primário ou secundário).

Retorna:

  • (verdadeiro, falso)

    Se a descrição é de um servidor com dados.

Desde:

  • 2.7.0



788
789
790
# Arquivo 'lib/mongo/ servidor/description.rb', linha 788

def data_Bearing?
  mongos? || primário? || secundário? || autônomo?
end

#election_id ➤ BSON::ObjectId

Obtenha o electionId da configuração.

Exemplos:

Obtenha o electionId.

description.election_id

Retorna:

  • (BSON::ObjectId)

    O ID da eleição.

Desde:

  • 2.1.0



473
474
475
# Arquivo 'lib/mongo/ servidor/description.rb', linha 473

def election_id
  config[ELECTION_ID]
end

#fantasma?true, false

Se este servidor é um fantasma, de acordo com a especificação do SDAM.

Exemplos:

O servidor é um fantasma?

description.ghost?

Retorna:

  • (verdadeiro, falso)

    Se o servidor for um fantasma.

Desde:

  • 2.0.0



337
338
339
340
# Arquivo 'lib/mongo/ servidor/description.rb', linha 337

def ghost?
  tudo bem? &&
    config['isreplicaset'] == true
end

#oculto?true, false

Retornará verdadeiro se o servidor estiver oculto.

Exemplos:

O servidor está oculto?

description.hidden?

Retorna:

  • (verdadeiro, falso)

    Se o servidor estiver oculto.

Desde:

  • 2.0.0



350
351
352
# Arquivo 'lib/mongo/ servidor/description.rb', linha 350

def oculto?
  tudo bem? && !!config[Oculto]
end

#hostsArray<String>

Obtenha uma lista de todos os servidores no conjunto de réplicas.

Exemplos:

Obtenha os servidores no conjunto de réplicas.

description.hosts

Retorna:

  • (Array<String>)

    Os servidores no conjunto.

Desde:

  • 2.0.0



362
363
364
# Arquivo 'lib/mongo/ servidor/description.rb', linha 362

def hosts
  @hosts ||= (config[HOSTS] || []).map { |s| s.downcase }
end

#inspecionarstring

Inspecione a descrição do servidor .

Exemplos:

Inspecione a descrição do servidor

description.inspect

Retorna:

  • (string)

    A inspeção.

Desde:

  • 2.0.0



374
375
376
# Arquivo 'lib/mongo/ servidor/description.rb', linha 374

def inspecionar
  "#<Mongo::Server:Description:0x#{object_id} config=#{config} average_round_trip_time=#{average_round_trip_time}>"
end

#is_server?(servidor) ➤ verdadeiro, falso

Obsoleto.

Esta descrição é do servidor fornecido.

Exemplos:

Verifique se a descrição é de um determinado servidor.

description.is_server?(server)

Retorna:

  • (verdadeiro, falso)

    Se a descrição for do servidor.

Desde:

  • 2.0.6



750
751
752
# Arquivo 'lib/mongo/ servidor/description.rb', linha 750

def is_server?(Servidor)
  endereço == Servidor.endereço
end

#last_write_date ➤ Hora

Obtenha o lastWriteDate do subdocumento lastWrite na configuração.

Exemplos:

Obtenha o valor lastWriteDate.

description.last_write_date

Retorna:

  • (Tempo)

    A última data de gravação.

Desde:

  • 2.4.0



538
539
540
# Arquivo 'lib/mongo/ servidor/description.rb', linha 538

def last_write_date
  config[LAST_WRITE][LAST_WRITE_DATE] se config[LAST_WRITE]
end

#lists_server?(servidor) ➤ verdadeiro, falso

Obsoleto.

É um servidor incluído na lista de servidores desta descrição.

Exemplos:

Verifique se um servidor está na lista de descrição dos servidores.

description.lists_server?(server)

Retorna:

  • (verdadeiro, falso)

    Se um servidor estiver na lista de servidores da descrição.

Desde:

  • 2.0.6



764
765
766
# Arquivo 'lib/mongo/ servidor/description.rb', linha 764

def lists_server?(Servidor)
  Servidores.incluir?(Servidor.endereço.to_s)
end

#load_balancer?verdadeiro | false

Retorna se este servidor é um balanceador de carga .

Retorna:

  • (verdadeiro | falso)

    Se este servidor é um balanceador de carga .

Desde:

  • 2.0.0



289
290
291
# Arquivo 'lib/mongo/ servidor/description.rb', linha 289

def load_balancer?
  @load_balancer
end

#logical_session_timeoutInteger?

Obtenha o logicalSessionTimeoutMinutes da configuração.

Exemplos:

Obtenha o valor logicalSessionTimeoutMinutes em minutos.

description.logical_session_timeout

Retorna:

  • (Inteiro, zero)

    O tempo limite lógico da sessão em minutos.

Desde:

  • 2.5.0



550
551
552
# Arquivo 'lib/mongo/ servidor/description.rb', linha 550

def logical_session_timeout
  config[LOGical_SESSION_TIMEOUT_MINUSES] se config[LOGical_SESSION_TIMEOUT_MINUSES]
end

#max_bson_object_size ➤ Inteiro

Obtenha o tamanho máximo do objeto BSON para esta versão do servidor .

Exemplos:

Obtenha o tamanho máximo do objeto BSON.

description.max_bson_object_size

Retorna:

  • (Inteiro)

    O tamanho máximo do objeto em bytes.

Desde:

  • 2.0.0



386
387
388
# Arquivo 'lib/mongo/ servidor/description.rb', linha 386

def max_bson_object_size
  config[MAX_BSON_OBJECT_SIZE]
end

#max_message_size ➤ Inteiro

Obtenha o tamanho máximo de mensagem para esta versão do servidor.

Exemplos:

Obtenha o tamanho máximo da mensagem.

description.max_message_size

Retorna:

  • (Inteiro)

    O tamanho máximo da mensagem em bytes.

Desde:

  • 2.0.0



398
399
400
# Arquivo 'lib/mongo/ servidor/description.rb', linha 398

def max_message_size
  config[MAX_MSSAGE_BYTES]
end

#max_wire_versionInteger

Obtenha a versão máxima do fio. O padrão é zero.

Exemplos:

Obtenha a versão máxima do fio.

description.max_wire_version

Retorna:

  • (Inteiro)

    A versão máxima do fio suportada.

Desde:

  • 2.0.0



422
423
424
# Arquivo 'lib/mongo/ servidor/description.rb', linha 422

def max_wire_version
  config[MAX_WIRE_VERSION] || 0
end

#max_write_batch_size ➤ Inteiro

Obtenha o tamanho máximo do lote para gravações.

Exemplos:

Obtenha o tamanho máximo do lote .

description.max_write_batch_size

Retorna:

  • (Inteiro)

    O tamanho máximo do lote.

Desde:

  • 2.0.0



410
411
412
# Arquivo 'lib/mongo/ servidor/description.rb', linha 410

def max_write_batch_size
  config[MAX_WRITE_BATCH_SIZE] || DEFAULT_MAX_WRITE_BATCH_SIZE
end

#mestring

Observação:

O valor no campo me pode ser diferente do endereço da descrição do servidor . Isso pode acontecer, por exemplo, em configurações de horizonte divisão . A especificação SDAM exige apenas a remoção de servidores cujo eu não corresponda ao endereço em algumas das situações (por exemplo, quando o servidor em questão é um nó do RS, mas não um primário).

Obtenha o valor do campo me.

Retorna:

  • (string)

    O campo eu.

Desde:

  • 2.1.0



449
450
451
# Arquivo 'lib/mongo/ servidor/description.rb', linha 449

def eu
  config[eu]
end

#me_mismatch?true, false

Verifique se há uma incompatibilidade entre o host de endereço e o campo me .

Exemplos:

Verifique se há uma incompatibilidade.

description.me_mismatch?

Retorna:

  • (verdadeiro, falso)

    Se houver uma incompatibilidade entre o campo me e o host de endereço.

Desde:

  • 2.0.6



800
801
802
# Arquivo 'lib/mongo/ servidor/description.rb', linha 800

def me_mismatch?
  !!(endereço.to_s.downcase != eu.downcase se eu)
end

#min_wire_version ➤ Integer

Obtenha a versão mínima com fio. O padrão é zero.

Exemplos:

Obtenha a versão mínima do fio.

description.min_wire_version

Retorna:

  • (Inteiro)

    A versão mínima de fio suportada.

Desde:

  • 2.0.0



434
435
436
# Arquivo 'lib/mongo/ servidor/description.rb', linha 434

def min_wire_version
  config[MIN_WIRE_VERSION] || 0
end

#mongocryptd?true, false

Se esta descrição é de um servidor mongocryptd.

Retorna:

  • (verdadeiro, falso)

    Se esta descrição é de um servidor mongocryptd.

Desde:

  • 2.0.0



808
809
810
# Arquivo 'lib/mongo/ servidor/description.rb', linha 808

def mongocryptd?
  tudo bem? && config['iscryptd'] == true
end

#mongos?true, false

Retorna se este servidor é um mongos, de acordo com a especificação do SDAM.

Exemplos:

O servidor é um mongos?

description.mongos?

Retorna:

  • (verdadeiro, falso)

    Se o servidor for um mongos.

Desde:

  • 2.0.0



562
563
564
# Arquivo 'lib/mongo/ servidor/description.rb', linha 562

def mongos?
  tudo bem? && config['msg'] == 'isdbgrade'
end

#ok?Booleano

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:

  • (Booleano)

Desde:

  • 2.0.0



725
726
727
# Arquivo 'lib/mongo/ servidor/description.rb', linha 725

def tudo bem?
  config[(operação)::Resultado::OK] == 1
end

#op_timeBSON::Timestamp

optime no subdocumento lastWrite da resposta hello.

Retorna:

  • (BSON::Timestamp)

    O carimbo de data/hora.

Desde:

  • 2.7.0



817
818
819
820
821
# Arquivo 'lib/mongo/ servidor/description.rb', linha 817

def op_time
  Método a menos que config['lastWrite'] && config['lastWrite']['optime']

  config['lastWrite']['optime']['ts']
end

#outro?true, false

Retorna se o servidor é outro, de acordo com a especificação do SDAM.

Exemplos:

É a descrição do tipo outro.

description.other?

Retorna:

  • (verdadeiro, falso)

    Se a descrição for outra.

Desde:

  • 2.0.0



574
575
576
577
578
579
580
581
582
583
# Arquivo 'lib/mongo/ servidor/description.rb', linha 574

def outro?
  # A especificação do SDAM é um pouco confusa sobre o que "outro" significa,
  # mas é referido como "RSOther", o que significa um não membro do RS
  # não pode ser "outro".
  tudo bem? &&
    !!config['setName'] && (
    config['oculto'] == true ||
    (!primário? && !secundário? && !árbitro?)
  )
end

#passivo?true, false

Retornará verdadeiro se o servidor for passivo.

Exemplos:

O servidor é passivo?

description.passive?

Retorna:

  • (verdadeiro, falso)

    Se o servidor for passivo.

Desde:

  • 2.0.0



593
594
595
# Arquivo 'lib/mongo/ servidor/description.rb', linha 593

def passivo?
  tudo bem? && !!config[Passiva]
end

#passivos ➤ Array<String>

Obtenha uma lista dos servidores passivos no cluster.

Exemplos:

Obtenha os passivos.

description.passives

Retorna:

  • (Array<String>)

    A lista de passivos.

Desde:

  • 2.0.0



605
606
607
# Arquivo 'lib/mongo/ servidor/description.rb', linha 605

def Passivos
  @passives ||= (config[Passivos] || []).map { |s| s.downcase }
end

#primary?true, false

Retorna se este servidor é um primary, de acordo com a especificação do SDAM.

Exemplos:

O servidor é primary?

description.primary?

Retorna:

  • (verdadeiro, falso)

    Se o servidor for primário.

Desde:

  • 2.0.0



629
630
631
632
633
# Arquivo 'lib/mongo/ servidor/description.rb', linha 629

def primário?
  tudo bem? &&
    (config['ismaster'] == true || config['isWritablePrimary'] == true) &&
    !!config['setName']
end

#primary_hoststring | nada

Obtenha o endereço do host primário.

Exemplos:

Obtenha o endereço do primário.

description.primary_host

Retorna:

  • (string | nil)

    O endereço do primário.

Desde:

  • 2.6.0



617
618
619
# Arquivo 'lib/mongo/ servidor/description.rb', linha 617

def primary_host
  config[PRIMARY_HOST] && config[PRIMARY_HOST].downcase
end

#replica_set_member?true, false

Esta descrição corresponde a um membro do conjunto de réplicas.

Exemplos:

Verifique se a descrição é de um membro do conjunto de réplicas.

description.replica_set_member?

Retorna:

  • (verdadeiro, falso)

    Se a descrição for de um membro do conjunto de réplicas.

Desde:

  • 2.0.6



777
778
779
# Arquivo 'lib/mongo/ servidor/description.rb', linha 777

def replica_set_member?
  tudo bem? && !(autônomo? || mongos?)
end

#replica_set_name ➤ string?

Obtenha o nome do conjunto de réplicas ao qual o servidor pertence, retorna nulo se não houver.

Exemplos:

Obtenha o nome do conjunto de réplicas .

description.replica_set_name

Retorna:

  • (string, nil)

    O nome do conjunto de réplicas.

Desde:

  • 2.0.0



644
645
646
# Arquivo 'lib/mongo/ servidor/description.rb', linha 644

def replica_set_name
  config[Set_NAME]
end

#secundário?true, false

Retorna se este servidor é secundário, de acordo com a especificação do SDAM.

Exemplos:

O servidor é secundário?

description.secondary?

Retorna:

  • (verdadeiro, falso)

    Se o servidor for secundário.

Desde:

  • 2.0.0



668
669
670
671
672
# Arquivo 'lib/mongo/ servidor/description.rb', linha 668

def secundário?
  tudo bem? &&
    config['secundário'] == true &&
    !!config['setName']
end

#server_connection_id ➤ Objeto

Desde:

  • 2.0.0



845
846
847
# Arquivo 'lib/mongo/ servidor/description.rb', linha 845

def server_connection_id
  config['connectionId']
end

#server_type ➤ Símbolo

Retorna o tipo de servidor como um símbolo.

Exemplos:

Obtenha o tipo de servidor .

description.server_type

Retorna:

Desde:

  • 2.4.0



682
683
684
685
686
687
688
689
690
691
692
693
# Arquivo 'lib/mongo/ servidor/description.rb', linha 682

def server_type
  Método :load_balancer se load_balancer?
  Método : árbitro se árbitro?
  Método :ghost se ghost?
  Método :sharded se mongos?
  Método :primary se primário?
  Método :secondary se secundário?
  Método : autônomo se autônomo?
  Método :OTHER se outro?

  :unknown
end

#server_version_gte?(version) ⇒ Boolean

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:

  • (Booleano)

Aumenta:

  • (NotImplementedError)

Desde:

  • 2.0.0



890
891
892
893
894
895
896
897
898
899
900
901
902
903
# Arquivo 'lib/mongo/ servidor/description.rb', linha 890

def server_version_gte?(Versão)
  se load_balancer?
    # Se estivermos falando com um balancer de carga, não há monitoramento
    # e não sabemos qual servidor está atrás do balanceador de carga .
    # Suponha que tudo seja suportado.
    # TODO remova isso quando o RUBY-2220 for implementado.
    Método true
  end

  require_wv = SERVER_VERSION_WIRE_VERSION_MAP[Versão]
  aumentar NotImplementedError, "Versão de servidor inesperada #{version.inspect}" a menos que require_wv

  require_wv <= max_wire_version
end

#servidoresArray<String>

Obtenha uma lista de todos os servidores conhecidos do cluster.

Exemplos:

Obtenha todos os servidores.

description.servers

Retorna:

  • (Array<String>)

    A lista de todos os servidores.

Desde:

  • 2.0.0



656
657
658
# Arquivo 'lib/mongo/ servidor/description.rb', linha 656

def Servidores
  hosts + Árbitros + Passivos
end

#service_idnil | Objeto

Retorna A ID do serviço, se houver.

Retorna:

  • (nil | Objeto)

    A ID do serviço, se houver.

Desde:

  • 2.0.0



852
853
854
# Arquivo 'lib/mongo/ servidor/description.rb', linha 852

def service_id
  config['serviceId']
end

#set_versionInteger

Obtenha o setVersion a partir da configuração.

Exemplos:

Obtenha a setVersion.

description.set_version

Retorna:

  • (Inteiro)

    A versão definida.

Desde:

  • 2.2.2



485
486
487
# Arquivo 'lib/mongo/ servidor/description.rb', linha 485

def set_version
  config[set_VERSION]
end

#autônomo?true, false

Retorna se o servidor é autônomo, de acordo com a especificação do SDAM.

Exemplos:

O servidor é autônomo?

description.standalone?

Retorna:

  • (verdadeiro, falso)

    Se o servidor for autônomo.

Desde:

  • 2.0.0



703
704
705
706
707
708
# Arquivo 'lib/mongo/ servidor/description.rb', linha 703

def autônomo?
  tudo bem? &&
    config['msg'] != 'isdbgrade' &&
    config['setName'].nada? &&
    config['isreplicaset'] != true
end

#tagsHash

Obtenha as tags configuradas para o servidor.

Exemplos:

Obtenha as marcações.

description.tags

Retorna:

  • (Hash)

    As tags do servidor.

Desde:

  • 2.0.0



461
462
463
# Arquivo 'lib/mongo/ servidor/description.rb', linha 461

def tags
  config[Tags] || {}
end

#topology_versionTopologyVersion | nada

Retorna a versão da topologia.

Retorna:

Desde:

  • 2.0.0



490
491
492
493
494
495
496
# Arquivo 'lib/mongo/ servidor/description.rb', linha 490

def topology_version
  a menos que definido?(@topology_version)
    @topology_version = config['topologyVersion'] &&
                        Versão de topologia.Novo(config['topologyVersion'])
  end
  @topology_version
end

#topology_version_gt?(outras_desc) ➤ true | false

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 se a versão de topologia nesta descrição é potencialmente mais recente ou igual à versão de topologia em outra descrição.

Parâmetros:

Retorna:

  • (verdadeiro | falso)

    Se a versão de topologia nesta descrição é potencialmente mais recente ou igual.

Desde:

  • 2.0.0



506
507
508
509
510
511
512
# Arquivo 'lib/mongo/ servidor/description.rb', linha 506

def topology_version_gt?(other_desc)
  se topology_version.nada? || other_desc.topology_version.nada?
    true
  mais
    topology_version.gt?(other_desc.topology_version)
  end
end

#topology_version_gte?(outras_desc) ➤ true | false

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 se a versão de topologia nesta descrição é potencialmente mais recente do que a versão de topologia em outra descrição.

Parâmetros:

Retorna:

  • (verdadeiro | falso)

    Se a versão da topologia nesta descrição é potencialmente mais recente.

Desde:

  • 2.0.0



522
523
524
525
526
527
528
# Arquivo 'lib/mongo/ servidor/description.rb', linha 522

def topology_version_gte?(other_desc)
  se topology_version.nada? || other_desc.topology_version.nada?
    true
  mais
    topology_version.gte?(other_desc.topology_version)
  end
end

#desconhecido?true, false

Retorna se este servidor é desconhecido, de acordo com a especificação do SDAM.

Exemplos:

A descrição do servidor é desconhecida?

description.unknown?

Retorna:

  • (verdadeiro, falso)

    Se a descrição do servidor for desconhecida.

Desde:

  • 2.0.0



718
719
720
721
722
# Arquivo 'lib/mongo/ servidor/description.rb', linha 718

def desconhecido?
  Método false se load_balancer?

  config.vazio? || config.keys == %w[topologyVersion] || !tudo bem?
end

#wire_versions ➤ Intervalo

Obtenha a faixa de versões de fio suportadas para o servidor.

Exemplos:

Obtenha o intervalo da versão com fio.

description.wire_versions

Retorna:

  • (Faixa)

    O intervalo da versão com fio.

Desde:

  • 2.0.0



737
738
739
# Arquivo 'lib/mongo/ servidor/description.rb', linha 737

def wire_versions
  min_wire_version..max_wire_version
end