Rechercher une fonction PHP

La classe MongoWriteBatch

(PECL mongo >=1.5.0)

Introduction

MongoWriteBatch est la classe de base pour MongoInsertBatch, MongoUpdateBatch et MongoDeleteBatch.

MongoWriteBatch vous permet de mettre en lot plusieurs opérations (du même type) et de les envoyer dans le même temps à MongoDB. Ceci est tout particulièrement utile lorsqu'on travaille sur plusieurs documents en même temps, réduisant ainsi les étapes.

Avant la version 1.5.0 du driver, il était possible d'utiliser la méthode MongoCollection::batchInsert(), cependant, depuis la version 1.5.0, cette méthode n'est plus recommandée.

Note : Cette classe n'est disponible que lorsqu'on travaille avec des serveurs MongoDB 2.6.0 (et supérieurs). Elle lancera une exception MongoProtocolException si vous tentez de l'utiliser avec des serveurs MongoDB plus anciens.

Retour à la première page de Manuel PHP  Table des matières Haut

Synopsis de la classe

MongoWriteBatch {
/* Constantes */
const int COMMAND_INSERT = 1 ;
const int COMMAND_UPDATE = 2 ;
const int COMMAND_DELETE = 3 ;
/* Méthodes */
protected __construct ( MongoCollection $collection [, string $batch_type [, array $write_options ]] )
public add ( array $item ) : bool
final public execute ( array $write_options ) : array
}

Retour à la première page de Manuel PHP  Table des matières Haut

Type de MongoWriteBatch

MongoWriteBatch::COMMAND_INSERT

Crée un lot d'écritures d'insertion

MongoWriteBatch::COMMAND_UPDATE

Crée un lot d'écritures de mise à jour

MongoWriteBatch::COMMAND_DELETE

Crée un lot d'écritures d'effacement

Retour à la première page de Manuel PHP  Table des matières Haut

Description

Lors de l'exécution d'un lot, en appelant la méthode MongoWriteBatch::execute(), MongoWriteBatch va envoyer maxWriteBatchSize (par défaut, 1000) documents ou jusqu'à maxBsonObjectSize (par défaut, 16777216 octets), celui qui arrive en premier.

Note:

Les documents ne seront jamais partiellement envoyés. Lors de l'ajout de documents dans le lot, qui dépassent la limite, un nouveau lot sera créé et le document sera ajouté à ce nouveau lot.

Retour à la première page de Manuel PHP  Table des matières Haut

Erreurs / Exceptions

Retour à la première page de Manuel PHP  Table des matières Haut

Exemples

Exemple #1 Exemple avec MongoWriteBatch

Ajout de documents dans un lot d'insertion, et l'exécute

<?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);
}
$retval $batch->execute(array("w" => 1));
var_dump($retval);
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["nInserted"]=>
  int(3)
  ["ok"]=>
  bool(true)
}

Retour à la première page de Manuel PHP  Table des matières Haut

Sommaire

Rechercher une fonction PHP

Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-class.mongowritebatch.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

  1. Consulter le document html Langue du document :fr Manuel PHP : http://php.net

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.

Table des matières Haut