public function fetchObjects($type, array $selector = [], array $order = null, $limit = null, $skip = null)
    {
        $type = $this->getFullType($type);
        if (class_exists($type)) {
            $table = $type::getCollection();
            $cursor = $this->mongodb->$table->find($selector);
            if ($order) {
                $cursor->sort($order);
            }
            if ($limit) {
                $cursor->limit($limit);
            }
            if ($skip) {
                $cursor->skip($skip);
            }
            $result = [];
            foreach ($cursor as $data) {
                $obj = new $type($data, $this->mongodb->$table, $this->cache);
                $result[] = $obj;
            }
            return $result;
        }
        return null;
    }