Exemplo n.º 1
0
 /**
  * 查询特定范围
  *
  * @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);
 }