public function select($offset = null, $limit = null, $useMaster = false)
{
is_null($offset) || $this->limit($offset, $limit);
$filter = [];
count($this->sql['orderBy']) > 0 && ($filter['sort'] = $this->sql['orderBy']);
count($this->sql['columns']) > 0 && ($filter['projection'] = $this->sql['columns']);
isset($this->sql['limit'][0]) && ($filter['skip'] = $this->sql['limit'][0]);
isset($this->sql['limit'][1]) && ($filter['limit'] = $this->sql['limit'][1]);
return $this->runMongoQuery($this->getRealTableName(key($this->table)), $this->sql['where'], $filter, $useMaster);
}