(PECL mongo >= 1.5.0)
MongoWriteBatch::add — Ajoute une opération d'écriture dans un lot
$item
)Ajoute une opération d'écriture dans un lot.
Si le paramètre $item
fait que le lot excède les limites
» maxWriteBatchSize
ou » maxBsonObjectSize,
le driver va, en interne, couper les lots en plusieurs commandes d'écriture
avant d'appeler la méthode MongoWriteBatch::execute().
item
Un tableau qui décrit une opération d'écriture. La structure de cette valeur dépoend du type de l'opération du lot.
Type du lot | Signification |
---|---|
MongoWriteBatch::COMMAND_INSERT |
Le document à ajouter. |
MongoWriteBatch::COMMAND_UPDATE |
Opération brute de mise à jour.
Les clés requises sont "q" et "u",
qui correspondent aux paramètres
Les clés optionnelles sont "multi" et "upsert",
qui correspondent aux options
"multiple" et
"upsert" pour
MongoCollection::update(), respectivement.
Si on spécifiés, les deux options vaudront par défaut |
MongoWriteBatch::COMMAND_DELETE |
Opération brute de suppression.
Les clés requises sont : "q" et "limit",
qui correspondent au paramètre
L'option "limit" est de type integer ; cependant, MongoDB ne supporte que la valeur 0 (i.e. supprime tous les documents correspondants) et la valeur 1 (i.e. supprime au moins un document correspondant) pour le moment. |
Retourne TRUE
en cas de succès, et lance une exception si une erreur survient.
Exemple #1 Exemple avec MongoWriteBatch::add()
Mise en lot de plusieurs opérations d'insertion
<?php
$mc = new MongoClient("localhost");
$collection = $mc->selectCollection("test", "test");
$docs = array();
$docs[] = array("my" => "demo");
$docs[] = array("is" => "working");
$docs[] = array("pretty" => "well");
$batch = new MongoInsertBatch($collection);
foreach($docs as $document) {
$batch->add($document);
}
$batch->execute(array("w" => 1));
?>
Exemple #2 Exemple avec MongoWriteBatch::add()
Mise en lot de plusieurs opérations de mise à jour
<?php
$mc = new MongoClient("localhost");
$collection = $mc->selectCollection("test", "test");
$item1 = array(
"q" => array("my" => "demo"),
"u" => array('$set' => array("try" => 1)),
"multi" => false, /* Valeur par défaut */
"upsert" => false, /* Valeur par défaut */
);
$item2 = array(
"q" => array("is" => "working"),
"u" => array('$set' => array("try" => 2)),
"multi" => true,
);
$item3 = array(
"q" => array("created" => "new-document"),
"u" => array('$set' => array("try" => 3)),
"upsert" => true,
);
$batch = new MongoUpdateBatch($collection);
$batch->add($item1);
$batch->add($item2);
$batch->add($item3);
$batch->execute(array("w" => 1));
?>
Exemple #3 Exemple avec MongoWriteBatch::add()
Mise en lot de plusieurs opérations de suppression
<?php
$mc = new MongoClient("localhost");
$collection = $mc->selectCollection("test", "test");
$item1 = array(
"q" => array("my" => "demo"),
"limit" => 1,
);
$item2 = array(
"q" => array("try" => 3),
"limit" => 1,
);
$batch = new MongoDeleteBatch($collection);
$batch->add($item1);
$batch->add($item2);
$batch->execute(array("w" => 1));
?>