protected function addAccumulator($group, $definition) {
		$definition = trim($definition);
		
		if (! preg_match('/^([a-z]+)\s*\(\s*(.+)\s*\)$/i', $definition, $matches)) {
			throw new Exceptions\InvalidDefinition('Invalid definition: "' . $definition . '"');
		}
		
		$function = strtolower(trim($matches[1]));
		$property = trim($matches[2]);
		
		if (! in_array($function, static::$mongoAggregators, true)) {
			throw new Exceptions\InvalidDefinition('Invalid aggregate function: "' . $function . '"');
		}
		
		$this->_groupDefinition[$group] = ['$' . $function => '$' . $property];
	}
protected function addAccumulator($group, $definition) {
		$definition = trim($definition);
		
		if (! preg_match('/^([a-z]+)\s*\(\s*(.+)\s*\)$/i', $definition, $matches)) {
			throw new Exceptions\InvalidDefinition('Invalid definition: "' . $definition . '"');
		}
		
		$function = strtolower(trim($matches[1]));
		$property = trim($matches[2]);
		
		if (! in_array($function, static::$mongoAggregators, true)) {
			throw new Exceptions\InvalidDefinition('Invalid aggregate function: "' . $function . '"');
		}
		
		$this->_groupDefinition[$group] = ['$' . $function => '$' . $property];
	}
protected function addAccumulator ( $ group , $ definition ) { $ definition = trim ( $ definition ) ; if ( ! preg_match ( '/^([a-z]+)\s*\(\s*(.+)\s*\)$/i' , $ definition , $ matches ) ) { throw new Exceptions \ InvalidDefinition ( 'Invalid definition: "' . $ definition . '"' ) ; } $ function = strtolower ( trim ( $ matches [ 1 ] ) ) ; $ property = trim ( $ matches [ 2 ] ) ; if ( ! in_array ( $ function , static :: $ mongoAggregators , true ) ) { throw new Exceptions \ InvalidDefinition ( 'Invalid aggregate function: "' . $ function . '"' ) ; } $ this -> _groupDefinition [ $ group ] = [ '$' . $ function => '$' . $ property ] ; }
Add accumulator to the group

@param  string $group
@param  string $definition
@throws Exceptions\InvalidDefinition
Add accumulator to the group