MongoWriteBatch::add
(PECL mongo >= 1.5.0)
MongoWriteBatch::add — Ajoute une opération d'écriture dans un lot
Description
$item
) : boolAjoute 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().
Liste de paramètres
-
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
$criteria
et$new_object
de MongoCollection::update(), respectivement.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
FALSE
.MongoWriteBatch::COMMAND_DELETE
Opération brute de suppression.
Les clés requises sont : "q" et "limit", qui correspondent au paramètre
$criteria
et à l'option "justOne" de MongoCollection::remove(), respectivement.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.
Erreurs / Exceptions
Exemples
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));
?>
Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-mongowritebatch.add.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.