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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | <?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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?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.