public function mapReduce(callable $mapper = null, callable $reducer = null, $overwrite = false)
    {
        if ($overwrite) {
            $this->_mapReduce = [];
        }
        if ($mapper === null) {
            if (!$overwrite) {
                deprecationWarning(
                    'Using QueryTrait::mapReduce() as a getter is deprecated. ' .
                    'Use getMapReducers() instead.'
                );
            }

            return $this->_mapReduce;
        }
        $this->_mapReduce[] = compact('mapper', 'reducer');

        return $this;
    }