Classe: Mongo::Operation::Insert::BulkResult

Herda:
Resultado
  • Objeto
mostrar tudo
Inclui:
Agregado
Definido em:
build/ruby-driver-v2.19/lib/mongo/operation/insert/bulk_result.rb

Visão geral

Define o comportamento personalizado dos resultados para uma inserção quando enviada como parte de uma escrita em massa.

Desde:

  • 2.0.0

Resumo constante

Constantes herdadas do resultado

Resultado::CURSOR, Resultado::CURSOR_ID, Resultado::FIRST_BATCH, Resultado::N, Resultado::NAMESPACE, Resultado::NEXT_BATCH, Resultado::OK, Resultado::RESULT

Recolhimento do Resumo do atributo de instância

Atributos herdados do Resultado

#connection_description, #connection_global_id, #replies

Recolhimento do Resumo do método de instância

Métodos herdados do Resultado

#reconhecido?, #cluster_time, #cursor_id, #documents, #each, #error, #has_cursor_id?, #inspect, #labels, #namespace, #ok?, #operation_time, #reply, #returned_count, #snapshot_timestamp, #successful?, #topology_version, #validate!, #write_concern_error?, #written_count

Detalhes do construtor

#initialize(replica, connection_description, connection_global_id, ids) ➤ BulkResult

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.

Inicialize um novo resultado.

Exemplos:

Instancie o resultado.

Result.new(replies, inserted_ids)

Parâmetros:

  • respostas (Array<Protocol::Message> | nil)

    O protocolo de conexão responde, se houver.

  • connection_description (Server::Description)

    Descrição do servidor MongoDB do servidor que executou a operação para a qual este resultado é.

  • connection_global_id (Inteiro)

    ID global da conexão na qual a operação para a qual este resultado é executado foi executada.

  • ids (Array<Object>)

    As IDs dos documentos inseridos.

Desde:

  • 2.0.0



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'build/ruby-driver-v2.19/lib/mongo/operation/insert/bulk_result.rb', linha 51

def inicializar(respostas, connection_description, connection_global_id, ids)
  @replica = [*respostas] se respostas
  @connection_description = connection_description
  @connection_global_id = connection_global_id
  se respostas && respostas.primeiro && (doc = respostas.primeiro.documentos.primeiro)
    se errors = doc['writeErrors']
      # alguns documentos foram potencialmente inseridos
      ruim_indices = {}
      errors.map fazer |Erro|
        ruim_indices[Erro['índice']] = true
      end
      @inserted_ids = []
      ids.cada_com_index fazer |id, index|
        se ruim_indices[index].nada?
          @inserted_ids << id
        end
      end
    # Não sabe se reconhecido? verificar aqui é necessário,
    # o melhor que posso dizer que não faz mal
    elsif reconhecido? && bem-sucedido?
      # Temos uma resposta e a resposta é bem-sucedida e o
      # resposta não tem writeErrors - tudo foi inserido
      @inserted_ids = ids
    mais
      # Temos uma resposta e a resposta não é bem-sucedida e
      # não há writeErrors - nada foi inserido.
      # Se algo foi inserido, a resposta não será bem-sucedida
      # mas terá writeErrors
      @inserted_ids = []
    end
  mais
    # Não acha que devemos chegar aqui, mas quem sabe,
    # faça com que se comporte como os drivers antigos
    @inserted_ids = ids
  end
end

Detalhes do atributo da instância

#insert_idsObject (somente leitura)

Obtenha as IDs dos documentos inseridos.

Desde:

  • 2.0.0



33
34
35
# File 'build/ruby-driver-v2.19/lib/mongo/operation/insert/bulk_result.rb', linha 33

def insert_ids
  @inserted_ids
end

Detalhes do método de instância

#insert_idObjeto

Obtém o ID do documento inserido.

Exemplos:

Obtenha a ID do documento inserido.

result.inserted_id

Retorna:

  • (Objeto)

    A ID do documento inserido.

Desde:

  • 2.0.0



110
111
112
# File 'build/ruby-driver-v2.19/lib/mongo/operation/insert/bulk_result.rb', linha 110

def insert_id
  insert_ids.primeiro
end

#n_insertedInteiro

Obtém o número de documentos inseridos.

Exemplos:

Obtenha o número de documentos inseridos.

result.n_inserted

Retorna:

  • (Inteiro)

    O número de documentos inseridos.

Desde:

  • 2.0.0



97
98
99
# File 'build/ruby-driver-v2.19/lib/mongo/operation/insert/bulk_result.rb', linha 97

def n_inserted
  escritas_count
end