MongoDB\Collection::bulkWrite()
Definição
Parâmetros
$operations
: arrayUma array contendo as operações de gravação a serem executadas.
MongoDB\Collection::bulkWrite()
suportaMongoDB\Collection::deleteMany()
,MongoDB\Collection::deleteOne()
,MongoDB\Collection::insertOne()
,MongoDB\Collection::replaceOne()
,MongoDB\Collection::updateMany()
eMongoDB\Collection::updateOne()
operações na seguinte estrutura de array:[ [ 'deleteMany' => [ $filter ] ], [ 'deleteOne' => [ $filter ] ], [ 'insertOne' => [ $document ] ], [ 'replaceOne' => [ $filter, $replacement, $options ] ], [ 'updateMany' => [ $filter, $update, $options ] ], [ 'updateOne' => [ $filter, $update, $options ] ], ] Os argumentos correspondem aos respectivos métodos de operação. No entanto, a opção
writeConcern
é especificada como uma opção de nível superior paraMongoDB\Collection::bulkWrite()
em vez de cada operação individual.$options
: arrayUma array especificando as opções desejadas.
NomeTipoDescriçãobuilderEncoder
MongoDB\Codec\Encoder
Codificador a ser usado para construtores de query e agregação . Se não for definido, esta opção assumirá como padrão uma nova instância da classe
MongoDB\Builder\BuilderEncoder
.Novidades na versão 1.21.
bypassDocumentValidation
booleano
Se
true
, permite que a operação de gravação contorne a validação do nível do documento. O padrão éfalse
.Codec
MongoDB\Codec\DocumentCodec
O codec a ser usado para codificação ou decodificação de documentos. Esta opção é mutuamente exclusiva com a opção
typeMap
.O padrão é o codec da coleção. A herança de uma opção
codec
padrão tem precedência sobre a da opçãotypeMap
.As gravações em massa usam o codec para operações
insertOne
ereplaceOne
.Novidade na versão 1.17.
comment
misto
Permite ao usuário especificar um comentário arbitrário para ajudar a rastrear a operação por meio do profiler de banco de dados, da saída currentOp e dos registros.
Para usar esta opção, você deve se conectar ao MongoDB 6.0 ou posterior. Se você estiver conectado a uma versão anterior, o servidor retornará uma exceção no tempo de execução.
Novidade na versão 1.13.
let
array|object
Mapa de nomes e valores de parâmetros. Os valores devem ser expressões constantes ou fechadas que não façam referência aos campos do documento. Os parâmetros podem ser acessados como variáveis em um contexto de expressão agregada (como
$$var
).Esta funcionalidade não é suportada para versões do servidor MongoDB 6.0 e anteriores. Se utilizado, o servidor retorna uma exceção no tempo de execução.
Novidade na versão 1.13.
encomendado
booleano
Se
true
: quando uma única gravação falhar, a operação interromperá sem executar as gravações restantes e lançará uma exceção.Se
false
: quando uma única gravação falhar, a operação continuará com as gravações restantes, se houver, e lançará uma exceção.O padrão é
true
.session
Sessão do cliente a ser associada à operação.
Novidade na versão 1.3.
writeConcern
Preocupação de gravação a ser usada na operação. O padrão é a preocupação de gravação da coleção.
Não é possível especificar uma preocupação de gravação para operações individuais como parte de uma transação. Em vez disso, defina a opção
writeConcern
ao iniciar a transação.
Return Values
Um objeto ,MongoDB\BulkWriteResult
que encapsula um MongoDB\Driver\WriteResult evento.
Erros/exceções
MongoDB\Exception\UnsupportedException
se as opções forem usadas e não aceitas pelo servidor selecionado (p. ex., collation
, readConcern
, writeConcern
).
MongoDB\Exception\InvalidArgumentException
para erros relacionados à análise de parâmetros ou opções.
MongoDB\Driver\Exception\BulkWriteException para erros relacionados à operação de gravação. Você pode inspecionar o valor retornado por getWriteResult() para determinar a natureza do erro.
MongoDB\Driver\Exception\RuntimeException para outros erros no nível da extensão (por exemplo erros de conexão).
Comportamento
Se uma MongoDB\Driver\Exception\BulkWriteException for lançada, você poderá chamar getWriteResult() e inspecionar o objeto MongoDB\Driver\WriteResult retornado para determinar a natureza do erro.
Por exemplo, uma operação de gravação pode ter sido aplicada com êxito ao servidor primário, mas não conseguiu atender a preocupação de gravação (p. ex., a replicação demorou muito tempo). Como alternativa, uma operação de gravação pode ter falhado completamente (p. ex., violação de chave única).
No caso de uma escrita em massa, o resultado pode indicar múltiplas operações de escrita bem-sucedidas e/ou erros. Se a opção ordered
for true
, algumas operações podem ter sido bem-sucedidas antes de o primeiro erro ser encontrado e a exceção lançada. Se a opção ordered
for false
, vários erros podem ter sido encontrados.
Veja também
Seção Gravação em massa de collections do guia Operações de escrita em massa