(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 |
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, 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 |
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)