Classe: Mongo::BulkWrite

Herda:
Objeto
  • Objeto
mostrar tudo
Estendido por:
Encaminhável
Inclui:
Operação::ResponseHandling
Definido em:
build/ruby-driver-v2.19/lib/mongo/bulk_write.rb,
build/ruby-driver-v2.19/lib/mongo/bulk_write/result.rb,
build/ruby-driver-v2.19/lib/mongo/bulk_write/combineable.rb,
build/ruby-driver-v2.19/lib/mongo/bulk_write/validatable.rb,
build/ruby-driver-v2.19/lib/mongo/bulk_write/transformable.rb,
build/ruby-driver-v2.19/lib/mongo/bulk_write/result_combiner.rb,
build/ruby-driver-v2.19/lib/mongo/bulk_write/ordered_combiner.rb,
build/ruby-driver-v2.19/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

Recolhimento do Resumo do método de instância

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.

Exemplos:

Crie uma escrita em massa ordenada.

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

Crie uma escrita em massa não ordenada.

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

Crie uma escrita em massa mista 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:

  • collection (Mongo::Collection)

    A coleção.

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

    As solicitações não podem estar vazias.

  • opções (Hash, BSON::Documento) (padrão para: {})

    As opções.

Desde:

  • 2.1.0



123
124
125
126
127
# File 'build/ruby-driver-v2.19/lib/mongo/bulk_write.rb', linha 123

def inicializar(collection, pedidos, opções = {})
  @collection = collection
  @requests = pedidos
  @opções = opções || {}
end

Detalhes do atributo da instância

#collectionMongo::Collection (readonly)

Retorna a collection A collection.

Retorna:



32
33
34
# File 'build/ruby-driver-v2.19/lib/mongo/bulk_write.rb', linha 32

def collection
  @collection
end

#optionsHash, BSON::Document (somente leitura)

Retorna as opções As opções.

Retorna:

  • (Hash, BSON::Document)

    opções As opções.



38
39
40
# File 'build/ruby-driver-v2.19/lib/mongo/bulk_write.rb', linha 38

def opções
  @opções
end

#requestsArray<Hash, BSON::Document> (somente leitura)

Retorna solicitações As solicitações.

Retorna:

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

    solicita Os pedidos.



35
36
37
# File 'build/ruby-driver-v2.19/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.

Exemplos:

Execute a escrita em massa.

bulk_write.execute

Retorna:

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
# File 'build/ruby-driver-v2.19/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!

  Cliente.enviar(:with_session, @opções) fazer |session|
    Contexto = (operação)::Contexto.Novo(cliente: Cliente, sessão: session)
    operations.cada fazer |operação|
      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?

Exemplos:

A escrita em massa está ordenada?

bulk_write.ordered?

Retorna:

  • (verdadeiro, falso)

    Se a gravação em massa for ordenada.

Desde:

  • 2.1.0



139
140
141
# File 'build/ruby-driver-v2.19/lib/mongo/bulk_write.rb', linha 139

def ordenado?
  @ordered ||= opções.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.

Exemplos:

Obtenha a preocupação de gravação.

bulk_write.write_concern

Retorna:

Desde:

  • 2.1.0



153
154
155
156
157
# File 'build/ruby-driver-v2.19/lib/mongo/bulk_write.rb', linha 153

def write_concern(session = nada)
  @write_concern ||= opções[:write_concern] ?
    Escreva preocupação.obter(opções[:write_concern]) :
    collection.write_concern_with_session(session)
end