/** * 查询特定范围 * * @param string $query * @param string $sort * @param int $skip * @param int $limit * @param string $fields * @return string */ public function find($query, $sort, $skip, $limit, $fields) { $query = $this->toArray($query); $sort = $this->toArray($sort); $skip = intval($skip); $skip = $skip > 0 ? $skip : 0; $limit = intval($limit); $limit = $limit < 0 ? 10 : $limit; $limit = $limit > 1000 ? 1000 : $limit; if (!empty($fields)) { $fields = $this->toArray($fields); } else { $fields = array(); } $cursor = $this->_model->find($query, $fields); $total = $cursor->count(); if (!empty($sort)) { $cursor->sort($sort); } if ($skip > 0) { $cursor->skip($skip); } $cursor->limit($limit); $rst = array('datas' => iterator_to_array($cursor, false), 'total' => $total); return $this->result($rst); }