(mongodb >=1.0.0)
MongoDB\Driver\BulkWrite::update — Add an update operation to the bulk
$filter
, array|object $newObj
, ?array $updateOptions
= null
): voidAdds an update operation to the MongoDB\Driver\BulkWrite.
filter
(array|object)El » predicado de la consulta. Un predicado vacío coincidirá con todos los documentos de una colección.
Nota: Al evaluar criterios de consulta, MongoDB compara tipos y valores según sus propias » reglas de comparación para tipos BSON, lo cual difiere de las reglas de comparación y manejo de tipos de PHP. Al encontrar un tipo BSON especial, los criterios de consulta deben utilizar la clase BSON respectiva (p.ej. usar MongoDB\BSON\ObjectID al encontrar un » ObjectID).
newObj
(array|object)
A document containing either update operators (e.g.
$set
), a replacement document (i.e.
only field:value
expressions), or
an » aggregation pipeline.
updateOptions
Option | Type | Description | Default |
---|---|---|---|
arrayFilters | array |
An array of filter documents that determines which array elements to modify for an update operation on an array field. See » Specify arrayFilters for Array Update Operations in the MongoDB manual for more information. This option is available in MongoDB 3.6+ and will result in an exception at execution time if specified for an older server version. |
|
collation | array|object |
» Collation, o cotejamiento, permite a los usuarios especificar reglas específcas del lenguaje para comparar cadenas, tales como reglas para mayúsculas/minúsculas y marcas de acento. Cuando se especifica el cotejamiento, el cambpo Si no se especifica el cotejamiento y la colección tiene un cotejamiento predeterminado, la operación usará el cotejamiento especificado por la colección. Si no se especifica el cotejamiento para la colección o para la operación, MongoDB usará la comparación binaria simple utilizada en versiones anteriores para comparar cadenas. Esta opción está disponible en MongoDB 3.4+ y resultará en una excepción durante la ejecución si se especifica para una versión más antigua del servidor. |
|
hint | string|array|object |
Index specification. Specify either the index name as a string or the index key pattern. If specified, then the query system will only consider plans using the hinted index. This option is available in MongoDB 4.2+ and will result in an exception at execution time if specified for an older server version. |
|
multi | bool |
Update only the first matching document if false , or all
matching documents true . This option cannot be true if
newObj is a replacement document.
|
false |
sort | array|object |
Specify which document the operation updates if the query matches multiple documents. The first document matched by the sort order will be updated.
This option cannot be used if This option is available in MongoDB 8.0+ and will result in an exception at execution time if specified for an older server version. |
|
upsert | bool |
If filter does not match an existing document,
insert a single document. The document will be
created from newObj if it is a replacement
document (i.e. no update operators); otherwise, the operators in
newObj will be applied to
filter to create the new document.
|
false |
No devuelve ningún valor.
Versión | Descripción |
---|---|
PECL mongodb 1.21.0 |
Added the "sort" option.
|
PECL mongodb 1.7.0 |
Added the "hint" option.
|
PECL mongodb 1.6.0 |
The newObj parameter now accepts an aggregation
pipeline. This feature requires MongoDB 4.2+ and will result in an
exception at execution time if specified for an older server version.
|
PECL mongodb 1.5.0 |
Using the "arrayFilters" option will result in an
exception at execution time if unsupported by the server. Previously,
no exception would be thrown and the option may have been ignored.
|
PECL mongodb 1.4.0 |
Added the "arrayFilters" option.
|
PECL mongodb 1.2.0 |
Added the "collation" option.
|
Ejemplo #1 MongoDB\Driver\BulkWrite::update() example
<?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);
?>