PHP Classes

File: vendor/mongodb/mongodb/docs/reference/method/MongoDBCollection-mapReduce.txt

Recommend this page to a friend!
  Classes of LAGGOUNE Walid   MongoDB Queue PHP Query Execute   vendor/mongodb/mongodb/docs/reference/method/MongoDBCollection-mapReduce.txt   Download  
File: vendor/mongodb/mongodb/docs/reference/method/MongoDBCollection-mapReduce.txt
Role: Documentation
Content type: text/plain
Description: Documentation
Class: MongoDB Queue PHP Query Execute
Query and execute multiple queries using MongoDB
Author: By
Last change:
Date: 4 years ago
Size: 3,548 bytes
 

Contents

Class file image Download
================================= MongoDB\\Collection::mapReduce() ================================= .. versionadded:: 1.2 .. default-domain:: mongodb .. contents:: On this page :local: :backlinks: none :depth: 1 :class: singlecol Definition ---------- .. phpmethod:: MongoDB\\Collection::mapReduce() The :manual:`mapReduce </reference/command/mapReduce>` command allows you to run map-reduce aggregation operations over a collection. .. code-block:: php function mapReduce($map, $reduce, $out, array $options = []): MongoDB\MapReduceResult This method has the following parameters: .. include:: /includes/apiargs/MongoDBCollection-method-mapReduce-param.rst The ``$options`` parameter supports the following options: .. include:: /includes/apiargs/MongoDBCollection-method-mapReduce-option.rst Return Values ------------- A :phpclass:`MongoDB\\MapReduceResult` object, which allows for iteration of map-reduce results irrespective of the output method (e.g. inline, collection) via the :php:`IteratorAggregate <iteratoraggregate>` interface. It also provides access to command statistics. Errors/Exceptions ----------------- .. include:: /includes/extracts/error-unsupportedexception.rst .. include:: /includes/extracts/error-invalidargumentexception.rst .. include:: /includes/extracts/error-unexpectedvalueexception.rst .. include:: /includes/extracts/error-driver-runtimeexception.rst Behavior -------- In MongoDB, the map-reduce operation can write results to a collection or return the results inline. If you write map-reduce output to a collection, you can perform subsequent map-reduce operations on the same input collection that merge replace, merge, or reduce new results with previous results. See :manual:`Map-Reduce </core/map-reduce>` and :manual:`Perform Incremental Map-Reduce </tutorial/perform-incremental-map-reduce>` for details and examples. When returning the results of a map-reduce operation *inline*, the result documents must be within the :limit:`BSON Document Size` limit, which is currently 16 megabytes. MongoDB supports map-reduce operations on :manual:`sharded collections </sharding>`. Map-reduce operations can also output the results to a sharded collection. See :manual:`Map-Reduce and Sharded Collections </core/map-reduce-sharded-collections>`. Example ------- This example will use city populations to calculate the overall population of each state. .. code-block:: php <?php $collection = (new MongoDB\Client)->test->zips; $map = new MongoDB\BSON\Javascript('function() { emit(this.state, this.pop); }'); $reduce = new MongoDB\BSON\Javascript('function(key, values) { return Array.sum(values) }'); $out = ['inline' => 1]; $populations = $collection->mapReduce($map, $reduce, $out); foreach ($populations as $pop) { var_dump($pop); }; The output would then resemble:: object(stdClass)#2293 (2) { ["_id"]=> string(2) "AK" ["value"]=> float(544698) } object(stdClass)#2300 (2) { ["_id"]=> string(2) "AL" ["value"]=> float(4040587) } object(stdClass)#2293 (2) { ["_id"]=> string(2) "AR" ["value"]=> float(2350725) } object(stdClass)#2300 (2) { ["_id"]=> string(2) "AZ" ["value"]=> float(3665228) } See Also -------- - :manual:`mapReduce </reference/command/mapReduce>` command reference in the MongoDB manual - :manual:`Map-Reduce </core/map-reduce>` documentation in the MongoDB manual