(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)El » atributo de la consulta. Un atributo vacío hará coincidir todos los documentos de la colección.
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)
Un documento que contiene operadores de actualización (por ejemplo
$set
), un documento de reemplazo (es decir,
solo expresiones field:value
), o
una » pipeline de agregación.
updateOptions
Option | Type | Description | Defaut |
---|---|---|---|
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. Véase » Especificar arrayFilters para las operaciones de actualización de array en el manual de MongoDB para más información. Esta opción está disponible en MongoDB 3.6+ y causará una excepción en el momento de la ejecución si se especifica para una versión de servidor más antigua. |
|
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 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 el nombre del índice como string o el patrón de clave de índice. Si se especifica, el sistema de consultas solo considerará los planes que usen el índice sugerido. Esta opción está disponible en MongoDB 4.4+ y causará una excepción en el momento de la ejecución si se especifica para una versión de servidor más antigua. |
|
multi | bool |
Actualiza 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 la operación actualiza si la consulta coincide con varios documentos. El primer documento coincidente por el orden de clasificación será actualizado.
Esta opción no puede ser utilizada si Esta opción está disponible en MongoDB 4.4+ y causará una excepción en el momento de la ejecución si se especifica para una versión de servidor más antigua. |
|
upsert | bool |
Si filter no coincide con un documento existente,
inserta un único documento. El documento será
creado a partir de newObj si es un documento de reemplazo
(es decir, sin operadores de actualización); de lo contrario, los operadores en
newObj serán aplicados a
filter para crear el nuevo documento.
|
false |
No se retorna ningún valor.
Versión | Descripción |
---|---|
PECL mongodb 1.21.0 |
Adición de la opción "sort" .
|
PECL mongodb 1.7.0 |
Adición de la opción "hint" .
|
PECL mongodb 1.6.0 |
El parámetro newObj acepta ahora una pipeline
de agregación. Esta funcionalidad requiere MongoDB 4.2+ y causará una
excepción en el momento de la ejecución si se especifica para una versión de servidor
más antigua.
|
PECL mongodb 1.5.0 |
Utilizar la opción "arrayFilters" causará una excepción
en el momento de la ejecución si no es soportada por el servidor. Anteriormente, ninguna excepción era lanzada y la opción podía ser ignorada.
|
PECL mongodb 1.4.0 |
Adición de la opción "arrayFilters" .
|
PECL mongodb 1.2.0 |
Adición de 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);
?>