Clase: Mongo::BulkWrite

Hereda:
Objeto
  • Objeto
Mostrar todo
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

Resumen del método de instancia colapsar

Detalles del Constructor

#initialize(colección, solicitudes, opciones = {}) ⇒ BulkWrite

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Crear la nueva operación de escritura masiva.

Ejemplos:

Crea un guardado por lotes ordenado.

Mongo::BulkWrite.new(collection, [{ insert_one: { _id: 1 }}])

Crear una escritura masiva desordenada.

Mongo::BulkWrite.new(collection, [{ insert_one: { _id: 1 }}], ordered: false)

Crea un guardado masivo mixto ordenado.

Mongo::BulkWrite.new(
  collection,
  [
    { insert_one: { _id: 1 }},
    { update_one: { filter: { _id: 0 }, update: { '$set' => { name: 'test' }}}},
    { delete_one: { filter: { _id: 2 }}}
  ]
)

Parámetros:

  • Colección (Mongo::Collection)

    La colección.

  • solicitud (Enumerable<Hash, BSON::Document>)

    Las solicitudes no pueden estar vacías.

  • opciones (Hash, BSON::Document) (por defecto: {})

    Las opciones.

Aumenta:

  • (ArgumentError)

Desde:

  • 2.1.0



129
130
131
132
133
134
135
136
# Archivo 'lib/mongo/bulk_write.rb', línea 129

def inicializar(Colección, solicitud, opciones = {})
  @colección = Colección
  @solicitudes = solicitud
  @options = opciones || {}
  return a menos que @options[:timeout_ms] && @options[:timeout_ms] < 0

  propagar ArgumentError, 'Las opciones timeout_ms deben ser un número entero no negativo'
end

Detalles de atributo de instancias

#colecciónMongo::Collection (solo lectura)

Devuelve la colección La colección.

Devuelve:



31
32
33
# Archivo 'lib/mongo/bulk_write.rb', línea 31

def Colección
  @colección
end

#optionsHash, BSON::Document (solo lectura)

Devuelve opciones Las opciones.

Devuelve:

  • (Hash, BSON::Document)

    opciones Las opciones.



37
38
39
# Archivo 'lib/mongo/bulk_write.rb', línea 37

def opciones
  @options
end

#solicitudesArreglo<Hash, BSON::Documento> (solo lectura)

Devuelve las solicitudes Las solicitudes.

Devuelve:

  • (Array<Hash, BSON::Document>)

    solicitudes Las solicitudes.



34
35
36
# Archivo 'lib/mongo/bulk_write.rb', línea 34

def solicitud
  @solicitudes
end

Detalles del método de instancia

#ejecutarMongo::BulkWrite::Result

Ejecutar la operación de guardado masivo.

Ejemplos:

Ejecuta el guardado masivo.

bulk_write.execute

Devuelve:

Desde:

  • 2.1.0



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
# Archivo 'lib/mongo/bulk_write.rb', línea 57

def ejecutar
  operation_id = Monitoring.next_operation_id
  result_combiner = ResultCombiner.Nuevo
  Operaciones = op_combiner.combinar
  validate_requests!
  fecha límite = calculate_deadline

  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_timeouts(fecha límite)
      )
      si single_statement?(Operación)
        write_concern = write_concern(sesión)
        escribir_con_reintento(write_concern, 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(write_concern, 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 es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

¿Está la escritura masiva ordenada?

Ejemplos:

¿Está la escritura masiva ordenada?

bulk_write.ordered?

Devuelve:

  • (true, false)

    Si la operación de guardado masivo está ordenada.

Desde:

  • 2.1.0



148
149
150
# Archivo 'lib/mongo/bulk_write.rb', línea 148

def ¿ordenado?
  @ordered ||= opciones.obtener(:ordered, true)
end

#write_concern(session = nil) ⇒ WriteConcern

Este método es parte de una API privada. Se debe evitar el uso de este método 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.

Ejemplos:

Obtenga el nivel de confirmación de escritura (write concern).

bulk_write.write_concern

Devuelve:

  • (WriteConcern)

    El nivel de confirmación de escritura (write concern).

Desde:

  • 2.1.0



162
163
164
165
166
167
168
# Archivo 'lib/mongo/bulk_write.rb', línea 162

def write_concern(sesión = nulo)
  @write_concern ||= si opciones[conformidad_de_lectura]
                       Nivel de confirmación de escritura (write concern).Obtener(opciones[conformidad_de_lectura])
                     else
                       Colección.write_concern_with_session(sesión)
                     end
end