Php/docs/mongowritebatch.add
MongoWriteBatch::add
(PECL mongo >= 1.5.0)
MongoWriteBatch::add — Adds 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 toFALSE
.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 supports0
(i.e. remove all matching documents) and1
(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
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));?>