Classe: Mongo::BulkWrite
- Herda:
-
Objeto
- Objeto
- Mongo::BulkWrite
- Estendido por:
- Encaminhável
- Inclui:
- Operação::ResponseHandling
- Definido em:
- lib/mongo/bulk_write.rb,
lib/mongo/bulk_write/result.rb,
lib/mongo/bulk_write/combineable.rb,
lib/mongo/bulk_write/validatable.rb,
lib/mongo/bulk_write/transformable.rb,
lib/ mongo/bulk_write/result_combiner.rb,
lib/mongo/bulk_write/ordered_combiner.rb,
lib/mongo/bulk_write/unordered_combiner.rb
Definido sob namespace
Módulos: Classes Combineable, Transformable, Validable : OrderedCombiner, Result, ResultCombiner, UnorderedCombiner
Recolhimento do Resumo do atributo de instância
-
#collection ➤ Mongo::Collection
Somente leitura
Collection A collection.
-
#options ⇒ Hash, BSON::Document
Somente leitura
Opções As opções.
-
#requests ➤ Array<Hash, BSON::Document>
Somente leitura
Solicitações As solicitações.
Recolhimento do Resumo do método de instância
-
#execute ➤ Mongo::BulkWrite::Result
Execute a operação de escrita em massa.
-
#initialize(collection, requests, opções = {}) ➤ BulkWrite
construtor
privado
Crie a nova operação de escrita em massa.
-
# fez opedido? ➤ verdadeiro, falso
privado
A gravação em massa está ordenada?
-
#write_concern(session = nil) ➤ WriteConcern
privado
Obtenha a preocupação de gravação para a escrita em massa.
Detalhes do construtor
#initialize(collection, requests, opções = {}) ➤ BulkWrite
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.
Crie a nova operação de escrita em massa.
129 130 131 132 133 134 135 136 |
# Arquivo 'lib/mongo/bulk_write.rb', linha 129 def inicializar(collection, pedidos, = {}) @collection = collection @requests = pedidos @opções = || {} Método a menos que @opções[:timeout_ms] && @opções[:timeout_ms] < 0 aumentar ArgumentError, 'as opções detimeout_ms devem ser número inteiro não negativo' end |
Detalhes do atributo da instância
#collection ➤ Mongo::Collection (readonly)
Retorna a collection A collection.
31 32 33 |
# Arquivo 'lib/mongo/bulk_write.rb', linha 31 def collection @collection end |
#options ➤ Hash, BSON::Document (somente leitura)
Retorna as opções As opções.
37 38 39 |
# Arquivo 'lib/mongo/bulk_write.rb', linha 37 def @opções end |
#requests ➤ Array<Hash, BSON::Document> (somente leitura)
Retorna solicitações As solicitações.
34 35 36 |
# Arquivo 'lib/mongo/bulk_write.rb', linha 34 def pedidos @requests end |
Detalhes do método de instância
#execute ➤ Mongo::BulkWrite::Result
Execute a operação de escrita em massa.
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 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
# Arquivo 'lib/mongo/bulk_write.rb', linha 57 def executar, executar operation_id = Monitoramento.Next_operation_id result_combiner = ResultCombiner.Novo operations = op_combiner.combinar validate_requests! prazo = calculate_deadline Cliente.with_session(@opções) fazer |session| operations.cada fazer |operação| Contexto = (operação)::Contexto.Novo( cliente: Cliente, sessão: session, operation_timeouts: operation_timeouts(prazo) ) se declaração única?(operação) write_concern = write_concern(session) write_with_retry(write_concern, contexto: Contexto) fazer |Conexão, txn_num, Contexto| execute_operation( operação.keys.primeiro, operação.values.achatar, Conexão, Contexto, operation_id, result_combiner, session, txn_num ) end mais nro_write_with_retry(write_concern, contexto: Contexto) fazer |Conexão, _txn_num, Contexto| execute_operation( operação.keys.primeiro, operação.values.achatar, Conexão, Contexto, operation_id, result_combiner, session ) end end end end result_combiner.Resultado end |
# fez opedido? ➤ 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.
A escrita em massa está ordenada?
148 149 150 |
# Arquivo 'lib/mongo/bulk_write.rb', linha 148 def ordenado? @ordered ||= .buscar(:ordered, true) end |
#write_concern(session = nil) ➤ WriteConcern
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 a preocupação de gravação para a escrita em massa.
162 163 164 165 166 167 168 |
# Arquivo 'lib/mongo/bulk_write.rb', linha 162 def write_concern(session = nada) @write_concern ||= se [:write_concern] Escreva preocupação.obter([:write_concern]) mais collection.write_concern_with_session(session) end end |