MongoCollection::update
(PECL mongo >=0.9.0)
MongoCollection::update — Modifie les enregistrements
Description
$criteria
   , array $new_object
   [, array $options = array()
  ] )Liste de paramètres
- 
     
      criteria
- 
      La description des objets à modifier. 
- 
     
      new_object
- 
      L'objet avec lequel modifier les objets trouvés. 
- 
     
      options
- 
      Ce paramètre est un tableau associatif sous la forme array("optionname" => <boolean>, ...). Les options actuellement supportées sont : - "w" - Voir WriteConcerns. La valeur par défaut pour MongoClient est 1. 
- 
         "upsert" Si aucun document ne correspond au critère $criteria, un nouveau document sera inséré.Si un nouveau document doit être inséré, et que $new_objectcontient des modificateurs atomiques (i.e. opérateurs $), alors ces opérateurs seront appliqués au paramètre$criteriapour créer le nouveau document. Si$new_objectne contient pas de modificateur atomique, il sera pris tel quel en tant que document inséré. Voir l'exemple ci-dessous pour plus d'informations.
- 
         "multiple" Tous les documents correspondants au $criteria seront mis à jour. MongoCollection::update() a le comportement opposé de MongoCollection::remove(): elle met à jour un document par défaut, pas tous les documents correspondants. Il est recommandé de toujours précisez si vous voulez mettre à jour un document ou plusieurs, la base de données pouvant changer son comportement par défaut dans le futur. 
- "fsync" - Booléen, par défaut vaut - FALSE. Force la synchronisation de l'insertion avant de retourner le succès de l'opération. Si vaut- TRUE, une insertion reconnue est implicite, et écrasera la configuration de w à 0.
- "j" - Booléen, par défaut - FALSE. Force l'insertion à être synchronisée avec le journal avant de retourner le succès de l'opération. Si vaut- TRUE, la reconnaissance d'une insertion sera appliquée, et va écraser la configuration passant de w à 0.
- "w" - Voir WriteConcerns. La valeur par défaut pour MongoClient est 1. 
- "wtimeout" - Durée d'attente pour la reconnaissance WriteConcern. La valeur par défaut pour MongoClient est 10000 millisecondes. 
- "safe" - Obsolète. Veuillez utiliser l'option w de WriteConcern w. 
- "timeout" - Entier, par défaut, vaut MongoCursor::$timeout. Si la reconnaissance des écritures est utilisée, ceci va définir (en millisecondes) la durée d'attente du client d'une réponse de la base de données. Si la base de données ne répond pas durant cette période, une exception de type MongoCursorTimeoutException sera émise. 
 
Valeurs de retour
   Retourne un tableau contenant le statit de la mise à jour si l'option
   "w" est définie. Sinon, retourne TRUE.
  
Les champs du tableau de statut sont décrits dans la documentation de la méthode MongoCollection::insert().
Erreurs / Exceptions
Lance une exception MongoCursorException si l'option "w" est définie et que l'écriture échoue.
Lance une exception MongoCursorTimeoutException si l'option "w" est définie à une valeur supérieure à un, et que l'opération prend plus de temps que MongoCursor::$timeout millisecondes à se terminer. Ceci ne tue pas l'opération sur le serveur, c'est un délai d'attente maximal côté client. La mesure pour MongoCollection::$wtimeout est le milliseconde.
Historique
| Version | Description | 
|---|---|
| 1.3.0 | Le paramètre optionsn'accepte plus
        de booléen pour indiquer un upsert. A la place, ceci
        doit être effectué via array('upsert' => true). | 
| 1.2.11 | Lance une alerte de niveau E_DEPRECATEDlorsque
        le paramètreoptionsest de type scalar. | 
| 1.2.0 | Ajout de l'option "timeout". | 
| 1.0.11 | Se déconnecte lors d'erreurs "not master" si "safe" est utilisé. | 
| 1.0.9 | Ajout de la possibilité de passer des entiers à l'option "safe" (auparavant, seuls les booléens étaient acceptés). Ajout de l'option "fsync". Le type retourné a été modifié en un tableau contenant les informations de l'erreur si l'option "safe" est utilisé, sinon, ce sera un booléen comme auparavant. | 
| 1.0.5 | Ajout de l'option "safe". | 
| 1.0.1 | Le paramètre optionspasse de booléen à un tableau.
        En version Pre-1.0.1, le second paramètre était une valeur
        booléenne optionnelle, spécifiant un upsert. | 
Exemples
Exemple #1 Exemple avec MongoCollection::update()
<?php
$c->insert(array("firstname" => "Bob", "lastname" => "Jones" ));
$newdata = array('$set' => array("address" => "1 Smith Lane"));
$c->update(array("firstname" => "Bob"), $newdata);
var_dump($c->findOne(array("firstname" => "Bob")));
?><?php
$c->drop();
$c->update(
	array("uri" => "/summer_pics"),
	array('$inc' => array("page hits" => 1)),
	array("upsert" => true)
);
var_dump($c->findOne());
?><?php
$c->drop();
$c->update(
	array("name" => "joe"),
	array("username" => "joe312", "createdAt" => new MongoDate()), 
	array("upsert" => true)
);
var_dump($c->findOne());
?><?php
$today = array('$gt' => new MongoDate(), '$lt' => new MongoDate(strtotime("+1 day")));
$people->update(
	array("birthday" => $today),
	array('$set' => array('gift' => $surprise)),
	array("multiple" => true)
);
?>Voir aussi
La documentation PHP sur les mises à jour et la » documentation core de MongoDB.
