yii\mongodb\QueryBuilder::group PHP Метод

group() публичный Метод

Generates 'group' command.
public group ( string $collectionName, $keys, array $initial, MongoDB\BSON\Javascript | string $reduce, array $options = [] ) : array
$collectionName string
$initial array Initial value of the aggregation counter object.
$reduce MongoDB\BSON\Javascript | string function that takes two arguments (the current document and the aggregation to this point) and does the aggregation. Argument will be automatically cast to [[Javascript]].
$options array optional parameters to the group command. Valid options include: - condition - criteria for including a document in the aggregation. - finalize - function called once per unique key that takes the final output of the reduce function.
Результат array command document.
    public function group($collectionName, $keys, $initial, $reduce, $options = [])
    {
        if (!$reduce instanceof Javascript) {
            $reduce = new Javascript((string) $reduce);
        }
        if (isset($options['condition'])) {
            $options['cond'] = $this->buildCondition($options['condition']);
            unset($options['condition']);
        }
        if (isset($options['finalize'])) {
            if (!$options['finalize'] instanceof Javascript) {
                $options['finalize'] = new Javascript((string) $options['finalize']);
            }
        }
        if (isset($options['keyf'])) {
            $options['$keyf'] = $options['keyf'];
            unset($options['keyf']);
        }
        if (isset($options['$keyf'])) {
            if (!$options['$keyf'] instanceof Javascript) {
                $options['$keyf'] = new Javascript((string) $options['$keyf']);
            }
        }
        $document = ['group' => array_merge(['ns' => $collectionName, 'key' => $keys, 'initial' => $initial, '$reduce' => $reduce], $options)];
        return $document;
    }