(mongodb >=1.0.0)
MongoDB\Driver\BulkWrite::update — Ajoute une opération de mise à jour au lot
$filter
, array|object $newObj
, ?array $updateOptions
= null
): voidAjoute une opération de mise à jour au MongoDB\Driver\BulkWrite.
filter
(array|object)L'» attribut de la requête. Un attribut vide va faire correspondre tous les documents de la collection.
Note: Lors de l'évaluation des critères de requête, MongoDB compare les type et les valeurs en fonction de leur propre » règles de comparaison pour les types BSON, qui diffère des règles de comparaison et de manipulation des type de PHP. Lors de la correspondance d'un type BSON spcécial, les critères de requête doivent utiliser la classe BSON (ex. : utiliser MongoDB\BSON\ObjectId pour correspondre à un » ObjectId).
newObj
(array|object)
Un document contenant des opérateurs de mise à jour (par exemple
$set
), un document de remplacement (c'est-à-dire
seulement des expressions field:valeur
), ou
une » pipeline d'agrégation.
updateOptions
Option | Type | Description | Defaut |
---|---|---|---|
arrayFilters | array |
Un tableau de documents de filtre qui détermine quels éléments de tableau à modifier pour une opération de mise à jour sur un champ de tableau. Voir » Spécifier des arrayFilters pour les opérations de mise à jour de tableau dans le manuel MongoDB pour plus d'informations. Cette option est disponible dans MongoDB 3.6+ et entraînera une exception au moment de l'exécution si elle est spécifiée pour une version de serveur plus ancienne. |
|
collation | array|object |
» Collation permet aux utilisateurs de spécifier des règles spécifiques au langage pour la comparaison des chaînes, par exemple, des règles pour les majuscules ou les accents. Lors de la spécification d'une collation, le champ Si la collation n'est pas spécifiée mais que la collection a une collation par défaut, l'opération utilisera la collation spécifiée pour la collection. Si aucune collation n'est spécifiée pour la collection ou pour l'opération, MongoDB utilisera le binaire simple de comparaison utilisé dans les versions précédentes pour les comparaisons des chaînes. Cette option est disponible en MongoDB 3.4+ et une exception sera émise au moment de l'exécution si elle est spécifiée dans une version antérieure. |
|
hint | string|array|object |
Spécification d'index. Spécifiez soit le nom de l'index en tant que chaîne soit le modèle de clé d'index. Si spécifié, le système de requête ne considérera que les plans utilisant l'index suggéré. Cette option est disponible dans MongoDB 4.4+ et entraînera une exception au moment de l'exécution si elle est spécifiée pour une version de serveur plus ancienne. |
|
multi | bool |
Met à jour uniquement le premier document correspondant si false , ou tout
les documents correspondants true . Cette option ne peut pas être true si
newObj est un document de remplacement.
|
false |
upsert | bool |
Si filter ne correspond pas à un document existant,
insère un unique document. Le document sera
crée à partir de newObj s'il s'agit d'un document de remplacement
(c'est-à-dire aucun opérateurs de mise à jour); sinon, les opérateurs dans
newObj seront appliqués à
filter pour créer le nouveau document.
|
false |
Aucune valeur n'est retournée.
Version | Description |
---|---|
PECL mongodb 1.7.0 |
Ajout de l'option "hint" .
|
PECL mongodb 1.6.0 |
Le paramètre newObj accepte désormais un pipeline
d'agrégation. Cette fonctionnalité nécessite MongoDB 4.2+ et entraînera une
exception au moment de l'exécution si elle est spécifiée pour une version de serveur
plus ancienne.
|
PECL mongodb 1.5.0 |
Utiliser l'option "arrayFilters" entraînera une exception
au moment de l'exécution si elle n'est pas prise en charge par le serveur.
Auparavant, aucune exception n'était levée et l'option pouvait être ignorée.
|
PECL mongodb 1.4.0 |
Ajout de l'option "arrayFilters" .
|
PECL mongodb 1.2.0 |
Ajout de l'option "collation" .
|
Exemple #1 Exemple 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);
?>