(PECL mongo >=0.9.0)
MongoCollection::save — Sauve un objet dans une collection
Si l'objet est déjà dans la base, modifie la base et sinon, insère l'objet.
Le tableau à sauver.
Options pour la sauvegarde.
"safe"
Booléen ou entier, FALSE par défaut. Si FALSE, le programme continue son exécution sans attendre de réponse de la base. Si TRUE, le programme attendra la réponse de la base et enverra une MongoCursorException si l'insertion a échoué.
Si safe est un entier, la réplication aura lieu avant de retourner avec succès (ou enverra une exception si la réplication n'a pas fonctionné, voyez wtimeout). Ceci écrase la variable w de la collection.
"fsync"
Booléen, par défaut FALSE. Force l'insertion à être écrite sur disque avant de retourner avec succès. Si TRUE, une insertion sécurisée est effectuée et écrasera le paramètre safe si à FALSE.
Si safe est utilisé, retourne un tableau contenant le statut de la sauvegarde. Sinon, retourne un booléen si le tableau était non vide (un tableau vide ne sera pas inséré).
Lance une exception MongoCursorException si l'option "safe" est définie et que la sauvegarde échoue.
Lance une MongoCursorTimeoutException si "safe" est utilisé avec une valeur plus grande que 1 et que la base ne peut répliquer l'opération dans le temps précisé par MongoCollection::$wtimeout.
Version | Description |
---|---|
1.0.5 | Ajout du paramètre "options". |
1.0.9 | Possibilité de passer des entiers pour l'option "safe" (n'acceptait que des booléen avant). Ajout de l'option "fsync". |
Exemple #1 Exemple avec MongoCollection::save()
<?php
$obj = array('x' => 1);
// insertion de $obj dans la base
$collection->save($obj);
// ajout d'un nouveau champ
$obj['foo'] = 'bar';
// $obj ne peut pas être inséré, car il causerait une duplication
$collection->insert($obj);
// sauvegarde de la modification de $obj
$collection->save($obj);
?>