Clase: Mongo::BulkWrite
- Hereda:
-
Objeto
- Objeto
- Mongo::Escritura masiva
- Ampliado por:
- Reenviable
- Incluye:
- Operación::Gestión de respuestas
- Definido en:
- 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 bajo Namespace
Modules: Combinable, Transformable, Validable Clases: Combinador ordenado, Resultado, Combinador de Resultados, Combinador no ordenado
Resumen de atributos de la instancia colapsar
-
#colección ⇒ Mongo::Collection
Solo lectura
Colección La colección.
-
#options ⇒ Hash, BSON::Document
Solo lectura
Opciones Las opciones.
-
#solicitudes ⇒ Array<Hash, BSON::Document>
Solo lectura
Solicitudes Las solicitudes.
Resumen del método de instancia colapsar
-
#execute ⇒ Mongo::BulkWrite::Result
Ejecutar la operación de escritura masiva.
-
#inicializar(colección, solicitudes, opciones = {}) ⇒ BulkWrite
constructor
privado
Crear la nueva operación de escritura masiva.
-
#¿ordenado? ⇒ verdadero, falso
privado
¿La escritura masiva está ordenada?.
-
#write_concern(session = nil) ⇒ WriteConcern
privado
Obtener el nivel de confirmación de escritura (write concern) para la guardar masiva.
Detalles del constructor
#initialize(colección, solicitudes, opciones = {}) ⇒ BulkWrite
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Crear la nueva operación de escritura masiva.
128 129 130 131 132 133 134 135 |
# Archivo 'lib/mongo/bulk_write.rb', línea 128 def inicializar(Colección, solicitud, = {}) @colección = Colección @solicitudes = solicitud @options = || {} si @options[:timeout_ms] && @options[:timeout_ms] < 0 propagar ArgumentError, "las opciones de timeout_ms deben ser un número entero no negativo" end end |
Detalles de los atributos de instancia
#colección ⇒ Mongo::Collection (solo lectura)
Devuelve la colección La colección.
32 33 34 |
# Archivo 'lib/mongo/bulk_write.rb', línea 32 def Colección @colección end |
#opciones ⇒ Hash, BSON::Documento (solo lectura)
Devuelve opciones Las opciones.
38 39 40 |
# Archivo 'lib/mongo/bulk_write.rb', línea 38 def @options end |
#solicitudes ⇒ Array<Hash, BSON::Document> (solo lectura)
Devuelve las solicitudes Las solicitudes.
35 36 37 |
# Archivo 'lib/mongo/bulk_write.rb', línea 35 def solicitud @solicitudes end |
Detalles del método de instancia
#ejecutar ⇒ Mongo::BulkWrite::Result
Ejecutar la operación de escritura masiva.
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 |
# Archivo 'lib/mongo/bulk_write.rb', línea 58 def ejecutar operation_id = Monitoring.id_de_próxima_operación result_combiner = ResultCombiner.Nuevo Operaciones = op_combiner.combinar validate_requests! fecha límite = calcular_fecha_límite Cliente.con_sesión(@options) hacer |sesión| Operaciones.cada hacer |operación| context = Operación::Context.Nuevo( cliente: Cliente, sesión: sesión, operation_timeouts: { operation_timeout_ms: op_timeout_ms(fecha límite) } ) si single_statement?(operación) escribir_preocupación = escribir_preocupación(sesión) escribir_con_reintento(escribir_preocupación, context: context) hacer |Conexión, txn_num, context| execute_operation( operación.claves.primero, operación.values.nivelar, Conexión, context, operation_id, result_combiner, sesión, txn_num) end else nro_write_with_retry(escribir_preocupación, context: context) hacer |Conexión, txn_num, context| execute_operation( operación.claves.primero, operación.values.nivelar, Conexión, context, operation_id, result_combiner, sesión) end end end end result_combiner.Resultado end |
#¿ordenado? ⇒ true, false
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
¿Está la escritura masiva ordenada?
147 148 149 |
# Archivo 'lib/mongo/bulk_write.rb', línea 147 def ¿ordenado? @ordered ||= .obtener(:ordered, true) end |
#write_concern(session = nil) ⇒ WriteConcern
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Obtener el nivel de confirmación de escritura (write concern) para la guardar masiva.
161 162 163 164 165 |
# Archivo 'lib/mongo/bulk_write.rb', línea 161 def escribir_preocupación(sesión = nulo) @write_concern ||= [:escribir_preocupación] ? Nivel de confirmación de escritura (write concern).Obtener([:escribir_preocupación]) : Colección.escribir_preocupación_con_la_sesión(sesión) end |