Php/docs/mongowritebatch.add

From Get docs

MongoWriteBatch::add

(PECL mongo >= 1.5.0)

MongoWriteBatch::addAdds a write operation to a batch


Description

public MongoWriteBatch::add ( array $item ) : bool

Adds a write operation to the batch.

If $item causes the batch to exceed the maxWriteBatchSize or maxBsonObjectSize limits, the driver will internally split the batches into multiple write commands upon calling MongoWriteBatch::execute().


Parameters

item

An array that describes a write operation. The structure of this value depends on the batch's operation type.

Batch type Argument expectation
MongoWriteBatch::COMMAND_INSERT The document to add.
MongoWriteBatch::COMMAND_UPDATE

Raw update operation.

Required keys are "q" and "u", which correspond to the $criteria and $new_object parameters of MongoCollection::update(), respectively.

Optional keys are "multi" and "upsert", which correspond to the "multiple" and "upsert" options for MongoCollection::update(), respectively. If unspecified, both options default to FALSE.

MongoWriteBatch::COMMAND_DELETE

Raw delete operation.

Required keys are: "q" and "limit", which correspond to the $criteria parameter and "justOne" option of MongoCollection::remove(), respectively.

The "limit" option is an int; however, MongoDB only supports 0 (i.e. remove all matching documents) and 1 (i.e. remove at most one matching document) at this time.


Return Values

Returns TRUE on success and throws an exception on failure.


Errors/Exceptions

  • Exception on parameter parsing failures
  • Exception on argument validation errors (e.g. missing keys)


Examples

Example #1 MongoWriteBatch::add() example

Batching up multiple insert operations


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

Example #2 MongoWriteBatch::add() example

Batching up multiple update operations


<?php$mc = new MongoClient("localhost");$collection = $mc->selectCollection("test", "test");$item1 = array(    "q" => array("my" => "demo"),    "u" => array('$set' => array("try" => 1)),    "multi"  => false, /* default value */    "upsert" => false, /* default value */);$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));?>

Example #3 MongoWriteBatch::add() example

Batching up multiple delete operations


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