mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-15 13:58:24 +08:00
Options parameter added to "\yii\mogo\Collection::mapReduce()"
This commit is contained in:
@@ -522,10 +522,17 @@ class Collection extends Object
|
|||||||
* @param string|array $out output collection name. It could be a string for simple output
|
* @param string|array $out output collection name. It could be a string for simple output
|
||||||
* ('outputCollection'), or an array for parametrized output (['merge' => 'outputCollection'])
|
* ('outputCollection'), or an array for parametrized output (['merge' => 'outputCollection'])
|
||||||
* @param array $condition criteria for including a document in the aggregation.
|
* @param array $condition criteria for including a document in the aggregation.
|
||||||
|
* @param array $options additional optional parameters to the mapReduce command. Valid options include:
|
||||||
|
* - sort - array - key to sort the input documents. The sort key must be in an existing index for this collection.
|
||||||
|
* - limit - the maximum number of documents to return in the collection.
|
||||||
|
* - finalize - function, which follows the reduce method and modifies the output.
|
||||||
|
* - scope - array - specifies global variables that are accessible in the map, reduce and finalize functions.
|
||||||
|
* - jsMode - boolean -Specifies whether to convert intermediate data into BSON format between the execution of the map and reduce functions.
|
||||||
|
* - verbose - boolean - specifies whether to include the timing information in the result information.
|
||||||
* @return string the map reduce output collection name.
|
* @return string the map reduce output collection name.
|
||||||
* @throws Exception on failure.
|
* @throws Exception on failure.
|
||||||
*/
|
*/
|
||||||
public function mapReduce($map, $reduce, $out, $condition = [])
|
public function mapReduce($map, $reduce, $out, $condition = [], $options = [])
|
||||||
{
|
{
|
||||||
if (!($map instanceof \MongoCode)) {
|
if (!($map instanceof \MongoCode)) {
|
||||||
$map = new \MongoCode((string)$map);
|
$map = new \MongoCode((string)$map);
|
||||||
@@ -542,6 +549,14 @@ class Collection extends Object
|
|||||||
if (!empty($condition)) {
|
if (!empty($condition)) {
|
||||||
$command['query'] = $this->buildCondition($condition);
|
$command['query'] = $this->buildCondition($condition);
|
||||||
}
|
}
|
||||||
|
if (array_key_exists('finalize', $options)) {
|
||||||
|
if (!($options['finalize'] instanceof \MongoCode)) {
|
||||||
|
$options['finalize'] = new \MongoCode((string)$options['finalize']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!empty($options)) {
|
||||||
|
$command = array_merge($command, $options);
|
||||||
|
}
|
||||||
$token = $this->composeLogToken('mapReduce', [$map, $reduce, $out]);
|
$token = $this->composeLogToken('mapReduce', [$map, $reduce, $out]);
|
||||||
Yii::info($token, __METHOD__);
|
Yii::info($token, __METHOD__);
|
||||||
try {
|
try {
|
||||||
|
|||||||
Reference in New Issue
Block a user