Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

mongowritebatch(3) [php man page]

MONGOWRITEBATCH(3)							 1							MONGOWRITEBATCH(3)

The MongoWriteBatch class

INTRODUCTION
MongoWriteBatch is the base class for the MongoInsertBatch, MongoUpdateBatch and MongoDeleteBatch classes. MongoWriteBatch allows you to "batch up" multiple operations (of same type) and shipping them all to MongoDB at the same time. This can be especially useful when operating on many documents at the same time to reduce roundtrips. Prior to version 1.5.0 of the driver it was possible to use MongoCollection::batchInsert, however, as of 1.5.0 that method is now discour- aged. Note: This class is only available when talking to MongoDB 2.6.0 (and later) servers. It will throw MongoProtocolException if attempting to use it on older MongoDB servers. CLASS SYNOPSIS
MongoWriteBatch MongoWriteBatch Constants o const int$MongoWriteBatch::COMMAND_INSERT1 o const int$MongoWriteBatch::COMMAND_UPDATE2 o const int$MongoWriteBatch::COMMAND_DELETE3 Methods o protected MongoWriteBatch::__construct (MongoCollection $collection, [string $batch_type], [array $write_options]) o public bool MongoWriteBatch::add (array $item) o finalpublic array MongoWriteBatch::execute (array $write_options) MONGOWRITEBATCH TYPES
o MongoWriteBatch::COMMAND_INSERT -Create an Insert Write Batch o MongoWriteBatch::COMMAND_UPDATE -Create an Update Write Batch o MongoWriteBatch::COMMAND_DELETE -Create an Delete Write Batch DESCRIPTION
When executing a batch, by calling MongoWriteBatch::execute, MongoWriteBatch will send over maxWriteBatchSize (defaults to 1000) documents or up to maxBsonObjectSize (defaults to 16777216 bytes), whichever comes first. Note Documents will never be partially transferred. When adding documents to the batch, that overflows the limit, a new batch will be created and the document put into the new batch. ERRORS
/EXCEPTIONS oException on parameter parsing failures oException on argument validation errors (e.g. missing keys) oMongoProtocolException when talking to MongoDB server older then 2.6.0. oMongoProtocolException on socket errors. oMongoWriteConcernException when a write fails due to WriteConcerns EXAMPLES
Example #1 MongoWriteBatch example Adding documents to a Insert batch and then execute it <?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); ?> The above example will output: array(2) { ["nInserted"]=> int(3) ["ok"]=> bool(true) } PHP Documentation Group MONGOWRITEBATCH(3)

Check Out this Related Man Page

MONGOCOLLECTION.AGGREGATECURSOR(3)					 1					MONGOCOLLECTION.AGGREGATECURSOR(3)

MongoCollection::aggregateCursor - Execute an aggregation pipeline command and retrieve results through a cursor

SYNOPSIS
public MongoCommandCursor MongoCollection::aggregateCursor (array $command, [array $options]) DESCRIPTION
With this method you can execute Aggregation Framework pipelines and retrieve the results through a cursor, instead of getting just one document back as you would with MongoCollection::aggregate. This method returns a MongoCommandCursor object. This cursor object implements the Iterator interface just like the MongoCursor objects that are returned by the MongoCollection::find method. Note The resulting MongoCommandCursor will inherit this collection's read preference. MongoCommandCursor::setReadPreference may be used to change the read preference before iterating on the cursor. PARAMETERS
o $pipeline - The Aggregation Framework pipeline to execute. o $options -Options for the aggregation command. Valid options include: o "allowDiskUse"Allow aggregation stages to write to temporary files o "cursor" It is possible to configure how many initial documents the server should return with the first result set. The default initial batch size is 101. You can change it by adding the batchSize option: <?php $collection->aggregateCursor( $pipeline, [ "cursor" => [ "batchSize" => 4 ] ] ); MongoCommandCursor::batchSize method on the returned MongoCommandCursor object. o "explain" Return information on the processing of the pipeline. This option may cause the command to return a result docu- ment that is unsuitable for constructing a MongoCommandCursor. If you need to use this option, you should consider using MongoCollection::aggregate. o "maxTimeMS"Specifies a cumulative time limit in milliseconds for processing the operation (does not include idle time). If the operation is not completed within the timeout period, a MongoExecutionTimeoutException will be thrown. RETURN VALUES
Returns a MongoCommandCursor object. Because this implements the Iterator interface you can iterate over each of the results as returned by the command query. The MongoCommandCursor also implements the MongoCursorInterface interface which adds the MongoCommandCursor::batch- Size, MongoCommandCursor::dead, MongoCommandCursor::info methods. EXAMPLES
Example #1 MongoCollection.aggregateCursor(3) example Finding all of the distinct values for a key. <?php $m = new MongoClient; $db = $m->test; $people = $db->people; $people->drop(); $people->insert(array("name" => "Joe", "points" => 4)); $people->insert(array("name" => "Molly", "points" => 43)); $people->insert(array("name" => "Sally", "points" => 22)); $people->insert(array("name" => "Joe", "points" => 22)); $people->insert(array("name" => "Molly", "points" => 87)); $ages = $people->aggregateCursor( [ [ '$group' => [ '_id' => '$name', 'points' => [ '$sum' => '$points' ] ] ], [ '$sort' => [ 'points' => -1 ] ], ] ); foreach ($ages as $person) { echo "{$person['_id']}: {$person['points']} "; } ?> The above example will output something similar to: Joe: 26 Sally: 22 Example #2 MongoCollection.aggregateCursor(3) example with different initial batch size Finding all of the distinct values for a key. <?php $m = new MongoClient; $db = $m->test; $people = $db->people; $people->drop(); /* Insert some sample data */ $people->insert(array("name" => "Joe", "points" => 4)); $people->insert(array("name" => "Molly", "points" => 43)); $people->insert(array("name" => "Sally", "points" => 22)); $people->insert(array("name" => "Joe", "points" => 22)); $people->insert(array("name" => "Molly", "points" => 87)); /* Run the command cursor */ $ages = $people->aggregateCursor( [ [ '$group' => [ '_id' => '$name', 'points' => [ '$sum' => '$points' ] ] ], [ '$sort' => [ 'points' => -1 ] ], ], [ "cursor" => [ "batchSize" => 4 ] ] ); foreach ($ages as $person) { echo "{$person['_id']}: {$person['points']} "; } ?> The above example will output something similar to: Joe: 26 Sally: 22 SEE ALSO
MongoDB::command, MongoCommandCursor, MongoCommandCursor::batchSize, MongoCollection::aggregate, The MongoDB aggregation framework. PHP Documentation Group MONGOCOLLECTION.AGGREGATECURSOR(3)
Man Page