MongoCollection
PHP Manual

MongoCollection::insert

(PECL mongo >=0.9.0)

MongoCollection::insertInsère un tableau dans la collection

Description

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

Toutes les chaînes envoyées à la base de données doivent être en UTF-8. Si une chaîne n'est pas UTF-8, une exception MongoException sera émise. Pour insérer (ou chercher) une chaîne non-UTF-8, utilisez la méthode MongoBinData.

Liste de paramètres

a

Un tableau.

options

Options d'insertion.

  • "safe"

    Peut être un booléen ou un entier, et vaut par défaut FALSE. Si vaut FALSE, le programme continue l'exécution sans attendre la réponse de la base de données. Si vaut TRUE, le programme attendra la réponse de la base de données et lancera une exception MongoCursorException si l'insertion a échouée.

    Si safe est un entier, l'insertion sera répliquée sur l'ensemble des machines avant de retourner le succès de l'opération (ou lancera une exception si la réplication échoue). Cette valeur écrase la variable w définie sur la collection.

  • "fsync"

    Booléen et vaut par défaut FALSE. Force l'insertion à être synchronisée sur le disque avant de retourner le succès de l'opération. Si vaut TRUE, une insertion sécurisée sera effectuée et le paramétrage de safe sera automatiquement valorisé à FALSE.

Valeurs de retour

Si le paramètre safe a été défini, retourne un tableau contenant le statut de l'insertion. Sinon, retourne un booléen indiquant si le tableau est non vide (un tableau vide ne peut être inséré).

Erreurs / Exceptions

Lance une exception MongoCursorTimeoutException si l'option "safe" est définie et que l'insertion échoue. (Version 1.0.1+)

Lance une exception MongoCursorTimeoutException si l'option "safe" est définie à une valeur supérieure à 1 et la base de données ne peut répliquer l'opération dans un délai de MongoCollection::$wtimeout millisecondes.

Historique

Version Description
1.0.5 Modification du second paramètre en un tableau d'options. Avant la version 1.0.5, le second paramètre était un booléen indiquant l'option "safe".
1.0.9 Ajout de la possibilité de passer des entiers à l'option "safe" (auparavant, seuls les booléens étaient acceptés) et ajout de l'option "fsync".

Exemples

Exemple #1 Exemple avec MongoCollection::insert()

L'insertion d'un objet ajoutera un champ _id sauf s'il est passé par référence.

<?php

$a 
= array('x' => 1);
$collection->insert($a);
var_dump($a);

$b = array('x' => 1);
$ref = &$b;
$collection->insert($ref);
var_dump($ref);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(2) {
  ["x"]=>
  int(1)
  ["_id"]=>
  object(MongoId)#4 (0) {
  }
}
array(1) {
  ["x"]=>
  int(1)
}

Exemple #2 Exemple avec MongoCollection::insert() en mode sécurisé

Cet exemple montre l'insertion de 2 éléments avec le même _id, ce qui entraine l'émission d'une exception MongoCursorException vu que le paramètre safe a été défini.

<?php

$person 
= array("name" => "Joe""age" => 20);
$collection->insert($persontrue);

// Maintenant, $person a un champ _id, aussi, si vous le sauvegardez à nouveau,
// une exception sera émise
try {
    
$collection->insert($persontrue);
}
catch(
MongoCursorException $e) {
    echo 
"Vous ne pouvez pas sauvegarder la même personne 2 fois !\n";
}

?>

Voir aussi

Documentation de MongoDB » concernant insert.


MongoCollection
PHP Manual