MongoDB\Driver\BulkWrite::update

(mongodb >=1.0.0)

MongoDB\Driver\BulkWrite::updateAdiciona uma operação de atualização ao objeto de escrita em massa

Descrição

public MongoDB\Driver\BulkWrite::update(array|object $filter, array|object $newObj, ?array $updateOptions = null): void

Adiciona 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ões campo: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 a true. Esta opção não pode ser true se newObj 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 de newObj se for um documento de substituição (ou seja, sem operadores de atualização); caso contrário, os operadores em newObj serão aplicados a filter para criar o novo documento. false

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

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