(mongodb >=1.0.0)
MongoDB\Driver\BulkWrite::update — Añade una operación de actualización al lote
$filter, array|object $newObj, ?array $updateOptions = null): voidAñade una operación de actualización al MongoDB\Driver\BulkWrite.
filter (array|object)Nota: Al evaluar los criterios de consulta, MongoDB compara los tipos y los valores según sus propias » reglas de comparación para los tipos BSON, que difieren de las reglas de comparación y de manipulación de tipos de PHP. Al hacer coincidir un tipo BSON especial, los criterios de consulta deben utilizar la clase BSON (ej.: utilizar MongoDB\BSON\ObjectId para hacer coincidir un » ObjectId).
newObj (array|object)$set), un documento de reemplazo (es decir,
únicamente expresiones campo:valor), o
una » tubería de agregación.
updateOptions
| Opción | Tipo | Descripción | Valor por omisión |
|---|---|---|---|
| arrayFilters | array | Un array de documentos de filtro que determina qué elementos de array modificar para una operación de actualización en un campo de array. Consulte » Especificar arrayFilters para operaciones de actualización de arrays en el manual de MongoDB para más información. Esta opción está disponible en MongoDB 3.6+ y generará una excepción en tiempo de ejecución si se especifica para una versión anterior del servidor. | |
| collation | array|object |
» Collation permite a los usuarios especificar reglas específicas del lenguaje para la comparación de cadenas, por ejemplo, reglas para mayúsculas o acentos. Al especificar una collation, el campo "locale" es obligatorio; todos los demás campos de la collation son opcionales. Para la descripción de estos campos, consúltese el » documento Collation.
Si la collation no es especificada pero la colección tiene una collation por omisión, la operación utilizará la collation especificada para la colección. Si ninguna collation es especificada para la colección o para la operación, MongoDB utilizará el binario simple de comparación utilizado en versiones anteriores para las comparaciones de cadenas.
Esta opción está disponible en MongoDB 3.4+ y una excepción será emitida en tiempo de ejecución si es especificada en una versión anterior.
|
|
| hint | string|array|object | Especificación de índice. Especifique ya sea el nombre del índice como string o el patrón de clave de índice. Si se especifica, entonces el sistema de consultas solo considerará planes que usen el índice indicado. Esta opción está disponible en MongoDB 4.2+ y generará una excepción en tiempo de ejecución si se especifica para una versión anterior del servidor. | |
| multi | bool |
Actualizar solo el primer documento coincidente si false, o todos
los documentos coincidentes true. Esta opción no puede ser true si
newObj es un documento de reemplazo.
|
false |
| sort | array|object |
Especifica qué documento actualizará la operación si la consulta
coincide con múltiples documentos. Se actualizará el primer documento
coincidente según el orden de clasificación.
Esta opción no puede usarse si "multi" es true.
Esta opción está disponible en MongoDB 8.0+ y generará una
excepción en tiempo de ejecución si se especifica para una versión
anterior del servidor.
|
|
| upsert | bool |
Si filter no coincide con un documento existente,
inserta un único documento. El documento se
creará a partir de newObj si es un documento de
reemplazo (es decir, sin operadores de actualización); de lo contrario,
los operadores en newObj se aplicarán a
filter para crear el nuevo documento.
|
false |
No se retorna ningún valor.
| Versión | Descripción |
|---|---|
| PECL mongodb 1.21.0 |
Se añadió la opción "sort".
|
| PECL mongodb 1.7.0 |
Se añadió la opción "hint".
|
| PECL mongodb 1.6.0 |
El parámetro newObj ahora acepta una tubería de
agregación. Esta característica requiere MongoDB 4.2+ y generará una
excepción en tiempo de ejecución si se especifica para una versión
anterior del servidor.
|
| PECL mongodb 1.5.0 |
Usar la opción "arrayFilters" generará una excepción
en tiempo de ejecución si el servidor no la soporta. Anteriormente, no
se generaba ninguna excepción y la opción podía ignorarse.
|
| PECL mongodb 1.4.0 |
Se añadió la opción "arrayFilters".
|
| PECL mongodb 1.2.0 |
Se añadió la opción "collation".
|
Ejemplo #1 Ejemplo 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);
?>