(mongodb >=1.0.0)
MongoDB\Driver\BulkWrite::update — Adiciona uma operação de atualização ao objeto de escrita em massa
$filter
, array|object $newObj
, ?array $updateOptions
= null
): voidAdiciona uma operação de atualização ao MongoDB\Driver\BulkWrite.
filter
(array|object)O » predicado de consulta. Um predicado vazio corresponderá a todos os documentos da coleção.
Nota: 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
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 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 |
Nenhum valor é retornado.
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.
|
Exemplo #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);
?>