(mongodb >=2.1.0)
MongoDB\Driver\BulkWriteCommand::__construct ā Cria um novo BulkWriteCommand
Cria um novo MongoDB\Driver\BulkWriteCommand, que pode ser usado para executar diversas operações de inserção, atualização e exclusão em vÔrias coleções em uma única solicitação usando o comando » bulkWrite introduzido no MongoDB 8.0. Isso difere de MongoDB\Driver\BulkWrite, que é suportado por todas as versões do servidor, mas limitado a uma única coleção.
Após todas as operações de gravação terem sido adicionadas, este objeto pode ser executado com MongoDB\Driver\Manager::executeBulkWriteCommand().
options (array)
| Opção | Tipo | Descrição | Padrão |
|---|---|---|---|
| bypassDocumentValidation | bool |
Se true, permite que operações de inserção e atualização contornem
a validação em nĆvel de documento.
|
false |
| comment | mixed | Um comentĆ”rio arbitrĆ”rio para ajudar a rastrear a operação por meio do profiler do banco de dados, da saĆda currentOp e dos registros. | |
| let | array|object |
Mapa de nomes e valores de parâmetros. Os valores devem ser expressões constantes ou fechadas que não fazem referência a campos do documento. Os parâmetros podem então ser acessados como variÔveis em um contexto de expressão agregada (por exemplo, $$var).
Esta opção estĆ” disponĆvel no MongoDB 5.0+ e resultarĆ” em uma exceção em tempo de execução se for especificada para uma versĆ£o de servidor mais antiga.
|
|
| ordered | bool |
Se as operações nesta gravação em massa devem ser executadas
na ordem em que foram especificadas. Se false, as gravaƧƵes
continuarão a ser executadas se uma gravação individual falhar. Se true,
as gravações deixarão de ser executadas se uma gravação individual falhar.
|
true |
| verboseResults | bool | Se os resultados detalhados de cada operação bem-sucedida devem ser incluĆdos no MongoDB\Driver\BulkWriteCommandResult retornado. | false |
Exemplo #1 Exemplo de MongoDB\Driver\BulkWriteCommand::__construct()
<?php
$manager = new MongoDB\Driver\Manager;
$bulk = new MongoDB\Driver\BulkWriteCommand;
// Exclui documentos de ambas as coleƧƵes
$bulk->deleteMany('db.coll_one', []);
$bulk->deleteMany('db.coll_two', []);
// Insere documentos em duas coleƧƵes
$bulk->insertOne('db.coll_one', ['_id' => 1]);
$bulk->insertOne('db.coll_two', ['_id' => 2]);
$bulk->insertOne('db.coll_two', ['_id' => 3]);
// Atualiza um documento em "coll_one"
$bulk->updateOne('db.coll_one', ['_id' => 1], ['$set' => ['x' => 1]]);
$result = $manager->executeBulkWriteCommand($bulk);
printf("Inserido(s) %d documento(s)\n", $result->getInsertedCount());
printf("Atualizado(s) %d documento(s)\n", $result->getModifiedCount());
?>O exemplo acima produzirĆ”:
Inserido(s) 3 documento(s) Atualizado(s) 1 documento(s)