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
mais...

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 motorista é alterado (jira.mongodb.org/browse/RUBY-{21805), 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'.congelar
Árbitros =

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

Desde:

  • 2.0.0

'árbitros'.congelar
OCULTO =

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

Desde:

  • 2.0.0

'oculto'.congelar
HOSTS =

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

Desde:

  • 2.0.0

'hosts'.congelar
MESSAGE =
Obsoleto.

Constante para a chave para o valor da mensagem.

Desde:

  • 2.0.0

'msg'.congelar
MONGOS_MSSAGE =
Obsoleto.

Constante para a mensagem que indica um cluster fragmentado.

Desde:

  • 2.0.0

'isdbgrade'.congelar
REPLICA_SET =
Obsoleto.

Constante para determinar servidores fantasma.

Desde:

  • 2.0.0

'isreplicaset'.congelar
MAX_BSON_OBJECT_SIZE =

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

Desde:

  • 2.0.0

'maxBsonObjectSize'.congelar
MAX_MSSAGE_BYTES =

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

Desde:

  • 2.0.0

'maxMessageSizeBytes'.congelar
MAX_WIRE_VERSION =

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

Desde:

  • 2.0.0

'maxWireVersion'.congelar
MIN_WIRE_VERSION =

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

Desde:

  • 2.0.0

'minWireVersion'.congelar
MAX_WRITE_BATCH_SIZE =

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

Desde:

  • 2.0.0

'maxWriteBatchSize'.congelar
LAST_WRITE =

Constante para o subdocumento lastWrite.

Desde:

  • 2.4.0

'lastWrite'.congelar
LAST_WRITE_DATE =

Constante para o campo lastWriteDate no subdocumento lastWrite.

Desde:

  • 2.4.0

'lastWriteDate'.congelar
eu =

Constante para ler o campo me .

Desde:

  • 2.1.0

'me'.congelar
DEFAULT_MAX_WRITE_BATCH_SIZE =

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

Desde:

  • 2.0.0

1000.congelar
LGACY_WIRE_VERSION =
Obsoleto.

Será removido em 3.0.

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

Desde:

  • 2.0.0

0.congelar
Passiva =

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

Desde:

  • 2.0.0

'passivo'.congelar
Passivos =

Constante para ler a lista de servidor passivos.

Desde:

  • 2.0.0

'passivos'.congelar
PRIMARY =
Obsoleto.

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

Desde:

  • 2.0.0

'ismaster'.congelar
PRIMARY_HOST =

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

Desde:

  • 2.5.0

'primary'.congelar
SECUNDÁRIO =
Obsoleto.

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

Desde:

  • 2.0.0

'secundário'.congelar
set_name =

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

Desde:

  • 2.0.0

'setName'.congelar
TAGS =

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

Desde:

  • 2.0.0

'tags'.congelar
ELECTION_ID =

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

Desde:

  • 2.1.0

'electionId'.congelar
set_VERSION =

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

Desde:

  • 2.2.2

'setVersion'.congelar
LOCAL_TIME =

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

Desde:

  • 2.1.0

'localTime'.congelar
Operation_time =

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

Desde:

  • 2.5.0

'operationTime'.congelar
LOGical_SESSION_TIMEOUT_MINUSES =

Constante para ler informações logicalSessionTimeoutMinutes de config.

Desde:

  • 2.5.0

'logicalSessionTimeoutMinutes'.congelar
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

'connectionId'.congelar
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

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

[Ver fonte]

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
279
280
281
282
283
284
# Arquivo 'lib/mongo/ servidor/description.rb', linha 220

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

  se load_balancer
    # 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 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
  end

  se mongo::Lint.habilitado?
    # preencher previamente variáveis de instância de cache
    hosts
    Árbitros
    Passivos
    topology_version

    congelar
  end
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


287
288
289
# Arquivo 'lib/mongo/ servidor/description.rb', linha 287

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


305
306
307
# Arquivo 'lib/mongo/ servidor/description.rb', linha 305

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


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

def config
  @config
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


848
849
850
# Arquivo 'lib/mongo/ servidor/description.rb', linha 848

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


839
840
841
# Arquivo 'lib/mongo/ servidor/description.rb', linha 839

def last_update_time
  @last_update_time
end

#minimum_round_trip_timeFlutuante (somente leitura)

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

Retorna:

  • (Flutuante)

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

Desde:

  • 2.0.0


309
310
311
# Arquivo 'lib/mongo/ servidor/description.rb', linha 309

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

[Ver fonte]

872
873
874
875
876
877
878
879
# Arquivo 'lib/mongo/ servidor/description.rb', linha 872

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

[Ver fonte]

319
320
321
322
323
# Arquivo 'lib/mongo/ servidor/description.rb', linha 319

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

[Ver fonte]

333
334
335
# Arquivo 'lib/mongo/ servidor/description.rb', linha 333

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

[Ver fonte]

794
795
796
# Arquivo 'lib/mongo/ servidor/description.rb', linha 794

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

[Ver fonte]

481
482
483
# Arquivo 'lib/mongo/ servidor/description.rb', linha 481

def election_id
  config[ELECTION_ID]
end

#featureFeature

Retorna recursos Os recursos do servidor.

Retorna:

  • (Recursos)

    funcionalidades As funcionalidades do servidor.

Desde:

  • 2.0.0

[Ver fonte]

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

def características
  @features
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

[Ver fonte]

345
346
347
348
# Arquivo 'lib/mongo/ servidor/description.rb', linha 345

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

[Ver fonte]

358
359
360
# Arquivo 'lib/mongo/ servidor/description.rb', linha 358

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

[Ver fonte]

370
371
372
# Arquivo 'lib/mongo/ servidor/description.rb', linha 370

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

[Ver fonte]

382
383
384
# Arquivo 'lib/mongo/ servidor/description.rb', linha 382

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

[Ver fonte]

756
757
758
# Arquivo 'lib/mongo/ servidor/description.rb', linha 756

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

[Ver fonte]

546
547
548
# Arquivo 'lib/mongo/ servidor/description.rb', linha 546

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

[Ver fonte]

770
771
772
# Arquivo 'lib/mongo/ servidor/description.rb', linha 770

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

[Ver fonte]

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

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

[Ver fonte]

558
559
560
# Arquivo 'lib/mongo/ servidor/description.rb', linha 558

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

[Ver fonte]

394
395
396
# Arquivo 'lib/mongo/ servidor/description.rb', linha 394

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

[Ver fonte]

406
407
408
# Arquivo 'lib/mongo/ servidor/description.rb', linha 406

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

[Ver fonte]

430
431
432
# Arquivo 'lib/mongo/ servidor/description.rb', linha 430

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

[Ver fonte]

418
419
420
# Arquivo 'lib/mongo/ servidor/description.rb', linha 418

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 membro do RS, mas não um primário).

Obtenha o valor do campo me.

Retorna:

  • (string)

    O campo eu.

Desde:

  • 2.1.0

[Ver fonte]

457
458
459
# Arquivo 'lib/mongo/ servidor/description.rb', linha 457

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

[Ver fonte]

806
807
808
# Arquivo 'lib/mongo/ servidor/description.rb', linha 806

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

[Ver fonte]

442
443
444
# Arquivo 'lib/mongo/ servidor/description.rb', linha 442

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

[Ver fonte]

814
815
816
# Arquivo 'lib/mongo/ servidor/description.rb', linha 814

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

[Ver fonte]

570
571
572
# Arquivo 'lib/mongo/ servidor/description.rb', linha 570

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

[Ver fonte]

731
732
733
# Arquivo 'lib/mongo/ servidor/description.rb', linha 731

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

[Ver fonte]

823
824
825
826
827
# Arquivo 'lib/mongo/ servidor/description.rb', linha 823

def op_time
  se config['lastWrite'] && config['lastWrite']['optime']
    config['lastWrite']['optime']['ts']
  end
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

[Ver fonte]

582
583
584
585
586
587
588
589
590
591
# Arquivo 'lib/mongo/ servidor/description.rb', linha 582

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

[Ver fonte]

601
602
603
# Arquivo 'lib/mongo/ servidor/description.rb', linha 601

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

[Ver fonte]

613
614
615
# Arquivo 'lib/mongo/ servidor/description.rb', linha 613

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

[Ver fonte]

637
638
639
640
641
# Arquivo 'lib/mongo/ servidor/description.rb', linha 637

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

[Ver fonte]

625
626
627
# Arquivo 'lib/mongo/ servidor/description.rb', linha 625

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

[Ver fonte]

783
784
785
# Arquivo 'lib/mongo/ servidor/description.rb', linha 783

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

[Ver fonte]

652
653
654
# Arquivo 'lib/mongo/ servidor/description.rb', linha 652

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

[Ver fonte]

676
677
678
679
680
# Arquivo 'lib/mongo/ servidor/description.rb', linha 676

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

#server_connection_id ➤ Objeto

Desde:

  • 2.0.0

[Ver fonte]

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

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

[Ver fonte]

690
691
692
693
694
695
696
697
698
699
700
# Arquivo 'lib/mongo/ servidor/description.rb', linha 690

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)

Desde:

  • 2.0.0

[Ver fonte]

883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
# Arquivo 'lib/mongo/ servidor/description.rb', linha 883

def server_version_gte?(Versão)
  require_wv = caso Versão
    quando '7.0'
      21
    quando '6.0'
      17
    quando '5.2'
      15
    quando '5.1'
      14
    quando '5.0'
      12
    quando '4.4'
      9
    quando '4.2'
      8
    quando '4.0'
      7
    quando '3.6'
      6
    quando '3.4'
      5
    quando '3.2'
      4
    quando '3.0'
      3
    quando '2.6'
      2
    mais
      aumentar ArgumentError, "Versão exigida falsa #{version}"
    end

  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 >= min_wire_version && 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

[Ver fonte]

664
665
666
# Arquivo 'lib/mongo/ servidor/description.rb', linha 664

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

[Ver fonte]

858
859
860
# Arquivo 'lib/mongo/ servidor/description.rb', linha 858

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

[Ver fonte]

493
494
495
# Arquivo 'lib/mongo/ servidor/description.rb', linha 493

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

[Ver fonte]

710
711
712
713
714
715
# Arquivo 'lib/mongo/ servidor/description.rb', linha 710

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

[Ver fonte]

469
470
471
# Arquivo 'lib/mongo/ servidor/description.rb', linha 469

def tags
  config[Tags] || {}
end

#topology_versionTopologyVersion | nada

Retorna a versão da topologia.

Retorna:

Desde:

  • 2.0.0

[Ver fonte]

498
499
500
501
502
503
504
# Arquivo 'lib/mongo/ servidor/description.rb', linha 498

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

[Ver fonte]

514
515
516
517
518
519
520
# Arquivo 'lib/mongo/ servidor/description.rb', linha 514

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

[Ver fonte]

530
531
532
533
534
535
536
# Arquivo 'lib/mongo/ servidor/description.rb', linha 530

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

[Ver fonte]

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

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

[Ver fonte]

743
744
745
# Arquivo 'lib/mongo/ servidor/description.rb', linha 743

def wire_versions
  min_wire_version..max_wire_version
end