Clase: Mongo::BulkWrite

Hereda:
Objeto
  • Objeto
Mostrar todo
Ampliado por:
Reenviable
Incluye:
Operación::Manejo 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 en el espacio de nombres

Modules: Clases combinables, transformables y validables: OrderedCombiner, Result, ResultCombiner, UnorderedCombiner

Colapso delresumen de atributos de instancia

Colapso del resumen del método de instancia

Detalles del constructor

#inicializar(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.

Cree la nueva operación de escritura masiva.

Ejemplos:

Crear una escritura masiva ordenada.

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

Crear una escritura masiva desordenada.

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

Crear una escritura masiva mixta ordenada.

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::Colección)

    La colección.

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

    Las solicitudes, no pueden estar vacías.

  • opciones (Hash,BSON::Documento) (predeterminado: {})

    Las opciones.

Desde:

  • 2.1.0



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

def inicializar(Colección, solicitudes, opciones = {})
  @recopilación = Colección
  @solicitudes = solicitudes
  @opciones = opciones || {}
  Si @opciones[:tiempo de espera_ms] && @opciones[:tiempo de espera_ms] < 0
    propagar ArgumentError, "Lasopciones timeout_ms deben ser un número entero nonegativo"
  end
end

Detalles de los atributos de instancia

#colecciónMongo::Collection (solo lectura)

Devuelve la colección La colección.

Devuelve:



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

def Colección
  @recopilación
end

#opcionesHash, BSON::Documento (solo lectura)

Devuelve opciones Las opciones.

Devuelve:

  • (Hash, BSON::Documento)

    opciones Las opciones.



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

def opciones
  @opciones
end

#solicitudesArray<Hash, BSON::Document> (solo lectura)

Devuelve solicitudes Las solicitudes.

Devuelve:

  • (Matriz<Hash, BSON::Documento>)

    solicitudes Las solicitudes.



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

def solicitudes
  @solicitudes
end

Detalles del método de instancia

#ejecutarMongo::BulkWrite::Result

Ejecutar la operación de escritura masiva.

Ejemplos:

Ejecutar la escritura masiva.

bulk_write.execute

Devuelve:

  • (Mongo::BulkWrite::Result)

    El resultado.

Desde:

  • 2.1.0



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
  combinador de resultados = Combinador de resultados.Nuevo
  Operaciones = op_combiner.combinar
  validate_requests!
  fecha tope = calcular_fecha_límite

  Cliente.con_sesión(@opciones) hacer |sesión|
    Operaciones.cada hacer |operación|
      context = Operación::Context.Nuevo(
        cliente: Cliente,
        sesión: sesión,
        tiempos de espera de operación: { tiempo de espera de operación_ms: tiempo de espera de operación_ms(fecha tope) }
      )
      Si ¿declaración_única?(operación)
        escribir_preocupación = escribir_preocupación(sesión)
        escribir_con_reintentar(escribir_preocupación, context: context) hacer |conexión, txn_num, context|
          ejecutar_operación(
            operación.claves.primera,
            operación.values.aplanar,
            conexión,
            context,
            operation_id,
            combinador de resultados,
            sesión,
            txn_num)
        end
      else
        nro_write_with_retry(escribir_preocupación, context: context) hacer |conexión, txn_num, context|
          ejecutar_operación(
            operación.claves.primera,
            operación.values.aplanar,
            conexión,
            context,
            operation_id,
            combinador de resultados,
            sesión)
        end
      end
    end
  end
  combinador de resultados.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á ordenada la escritura masiva?

Ejemplos:

¿Está ordenada la escritura masiva?

bulk_write.ordered?

Devuelve:

  • (verdadero,falso)

    Si se ordena la escritura masiva.

Desde:

  • 2.1.0



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

def ¿ordenado?
  @ordenado ||= opciones.Fetch(: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.

Obtenga la preocupación de escritura para la escritura masiva.

Ejemplos:

Obtenga la preocupación escrita.

bulk_write.write_concern

Devuelve:

  • (EscribirPreocupación)

    La preocupación de escribir.

Desde:

  • 2.1.0



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

def escribir_preocupación(sesión = nulo)
  @write_concern ||= opciones[:escribir_preocupación] ?
    Escribir preocupación.Obtener(opciones[:escribir_preocupación]) :
    Colección.escribir_preocupación_con_la_sesión(sesión)
end