(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)Das » Abfrage-Prädikat. Ein leeres Prädikat passt auf alle Dokumente in der Sammlung.
Hinweis: Bei der Auswertung von Abfragekriterien vergleicht MongoDB Typen und Werte gemäß seiner eigenen » Vergleichsregeln für BSON-Typen, die sich von PHPs Regeln für Typenvergleich und Typen-Jonglage unterscheidet. Wenn es eine Übereinstimmung mit einem speziellen BSON-Typ gibt, sollten die Abfragekriterien die entsprechende BSON-Klasse verwenden (z. B. MongoDB\BSON\ObjectId, um auf eine » ObjectId zu passen).
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 |
Die » Collation (Vergleichs-/Sortierregel) ermöglicht es dem Benutzer, sprachspezifische Regeln für den Vergleich von Zeichenketten anzugeben, so z. B. Regeln für die Groß- und Kleinschreibung und Akzentzeichen. Bei der Angabe der Sortierung ist das Feld Wenn keine Kollation angegeben wurde, aber die Sammlung eine Standardkollation hat, verwendet die Operation die für die Sammlung angegebene Kollation. Wenn weder für die Sammlung noch für die Operation eine Kollation angegeben wurde, verwendet MongoDB den einfachen binären Vergleich, der in früheren Versionen für den Vergleich von Zeichenketten verwendet wurde. Diese Option ist ab MongoDB 3.4 verfügbar. Wenn sie für eine ältere Serverversion angegeben wird, kommt es bei der Ausführung zu einer Exception. |
|
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 |
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 |
Es wird kein Wert zurückgegeben.
Version | Beschreibung |
---|---|
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.
|
Beispiel #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);
?>