MongoCollection
PHP Manual

MongoCollection::save

(PECL mongo >=0.9.0)

MongoCollection::saveSauve un objet dans une collection

Description

public mixed MongoCollection::save ( array $a [, array $options = array() ] )

Si l'objet est déjà dans la base, modifie la base et sinon, insère l'objet.

Liste de paramètres

a

Le tableau à sauver.

options

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.

Valeurs de retour

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é).

Erreurs / Exceptions

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.

Historique

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".

Exemples

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);

?>

MongoCollection
PHP Manual