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 mais...
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.
128 129 130 131 132 133 134 135 |
# Arquivo 'lib/mongo/bulk_write.rb', linha 128 def inicializar(collection, pedidos, = {}) @collection = collection @requests = pedidos @opções = || {} se @opções[:timeout_ms] && @opções[:timeout_ms] < 0 aumentar ArgumentError, "as opções de timeout_ms devem ser número inteiro não negativo" end end |
Detalhes do atributo da instância
#collection ➤ Mongo::Collection (readonly)
Retorna a collection A collection.
32 33 34 |
# Arquivo 'lib/mongo/bulk_write.rb', linha 32 def collection @collection end |
#options ➤ Hash, BSON::Document (somente leitura)
Retorna as opções As opções.
38 39 40 |
# Arquivo 'lib/mongo/bulk_write.rb', linha 38 def @opções end |
#requests ➤ Array<Hash, BSON::Document> (somente leitura)
Retorna solicitações As solicitações.
35 36 37 |
# Arquivo 'lib/mongo/bulk_write.rb', linha 35 def pedidos @requests end |
Detalhes do método de instância
#execute ➤ Mongo::BulkWrite::Result
Execute a operação de escrita em massa.
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 |
# Arquivo 'lib/mongo/bulk_write.rb', linha 58 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_timeout_ms: op_timeout_ms(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?
147 148 149 |
# Arquivo 'lib/mongo/bulk_write.rb', linha 147 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.
161 162 163 164 165 |
# Arquivo 'lib/mongo/bulk_write.rb', linha 161 def write_concern(session = nada) @write_concern ||= [:write_concern] ? Escreva preocupação.obter([:write_concern]) : collection.write_concern_with_session(session) end |