MongoDB\Driver\BulkWrite::update
(mongodb >=1.0.0)
MongoDB\Driver\BulkWrite::update — Adiciona uma operação de atualização ao objeto de escrita em massa
Descrição
$filter
, array|object $newObj
, ?array $updateOptions
= null
): voidAdiciona uma operação de atualização ao MongoDB\Driver\BulkWrite.
Parâmetros
filter
(array|object)-
O » predicado de consulta. Um predicado vazio corresponderá a todos os documentos da coleção.
Note: Ao avaliar os critérios de consulta, o MongoDB compara os tipos e valores de acordo com suas próprias » regras de comparação para tipos BSON, que diferem das regras de comparação e do malabarismo de tipos do PHP. Ao corresponder a um tipo especial de BSON, os critérios de consulta devem usar a respectiva classe BSON (por exemplo, use MongoDB\BSON\ObjectId para corresponder a um » ObjectId).
newObj
(array|object)-
Um documento contendo operadores de atualização (ex.:
$set
), um documento para substituição (ou seja, somente expressõescampo:valor
), ou um » pipeline de agregação. updateOptions
-
updateOptions Opção Tipo Descrição Padrão arrayFilters array Um array de documentos de filtro que determina quais elementos da matriz serão modificados para uma operação de atualização em um campo do array. Consulte » Especificar arrayFilters para operações de atualização de array no manual do MongoDB para obter mais informações.
Esta opção está disponível no MongoDB 3.6+ e resultará em uma exceção em tempo de execução se especificada para uma versão mais antiga do servidor.
collation array|object » Collation permite que os usuários especifiquem regras específicas do idioma para comparação de strings, como regras para maiúsculas e minúsculas e acentos. Ao especificar a collation, o campo
"locale"
é obrigatório; todos os outros campos de collation são opcionais. Para obter descrições dos campos, veja o » Documento de Collation.Se a collation não for especificada, mas a coleção tiver uma collation padrão, a operação usará a collation especificada para a coleção. Se nenhuma collation for especificada para a coleção ou para a operação, o MongoDB usará a comparação binária simples usada em versões anteriores para comparações de strings.
Esta opção está disponível no MongoDB 3.4+ e resultará em uma exceção em tempo de execução se for especificada para uma versão de servidor mais antiga.
hint string|array|object Especificação do índice. Especifique o nome do índice como uma string ou o padrão de chave do índice. Se especificado, o sistema de consulta considerará apenas os planos usando o índice sugerido.
Esta opção está disponível no MongoDB 4.2+ e resultará em uma exceção em tempo de execução se especificada para uma versão mais antiga do servidor.
multi bool Atualiza apenas o primeiro documento correspondente se for igual a false
, ou todos os documentos correspondentes se for igual atrue
. Esta opção não pode sertrue
senewObj
for um documento de substituição.false
upsert bool Se o parâmetro filter
não corresponder a um documento existente, insere um único documento. O documento será criado a partir denewObj
se for um documento de substituição (ou seja, sem operadores de atualização); caso contrário, os operadores emnewObj
serão aplicados afilter
para criar o novo documento.false
Valor Retornado
Nenhum valor é retornado.
Erros/Exceções
- Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
Registro de Alterações
Versão | Descrição |
---|---|
PECL mongodb 1.7.0 |
Opção "hint" adicionada.
|
PECL mongodb 1.6.0 |
O parâmetro newObj agora aceita um pipeline de
agregação. Este recurso requer MongoDB 4.2+ e resultará em uma
exceção em tempo de execução se especificado para uma versão de servidor mais antiga.
|
PECL mongodb 1.5.0 |
Usar a opção "arrayFilters" resultará em uma
exceção em tempo de execução se não for suportada pelo servidor. Anteriormente,
nenhuma exceção seria lançada e a opção poderia ser ignorada.
|
PECL mongodb 1.4.0 |
Opção "arrayFilters" adicionada.
|
PECL mongodb 1.2.0 |
Opção "collation" adicionada.
|
Exemplos
Example #1 Exemplo de MongoDB\Driver\BulkWrite::update()
<?php
$bulk = new MongoDB\Driver\BulkWrite;
$bulk->update(
['x' => 2],
['$set' => ['y' => 3]],
['multi' => false, 'upsert' => false]
);
$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$result = $manager->executeBulkWrite('db.collection', $bulk);
?>
Veja Também
- MongoDB\Driver\Manager::executeBulkWrite() - Executa uma ou mais operações de escrita
- MongoDB\Driver\WriteResult