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().
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 Optional keys are "multi" and "upsert", which correspond to the "multiple" and "upsert" options for MongoCollection::update(), respectively. If unspecified, both options default to |
MongoWriteBatch::COMMAND_DELETE | Raw delete operation. Required keys are: "q" and "limit", which correspond to the The "limit" option is an integer; however, MongoDB only supports 0 (i.e. remove all matching documents) and 1 (i.e. remove at most one matching document) at this time. |
Returns TRUE
on success and throws an exception on failure.
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)); ?>
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)); ?>
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)); ?>
Please login to continue.