MongoDB Symfony3分页From To使用QueryBuilder限制结果

时间:2017-11-15 16:40:22

标签: mongodb symfony pagination doctrine query-builder

我在我的symfony3应用程序中使用mongoDB,我需要在我的存储库中使用setMaxResultssetFirstResult来对我的列表操作中的结果进行分页。但是我更习惯使用MySql作为数据库而我在cas中找不到怎么做。

我试着用它:

$qb = $this->createQueryBuilder('DemoBundle:Entity');
$qb ->select('u');
$qb ->setMaxResults($max) 
    ->setFirstResult($first); 

但我有一个错误如下:

  

尝试调用类的名为“setMaxResults”的未定义方法   “教义\ ODM \ MongoDB的\查询\生成器

完整功能如下:

public function search($data, $page = 0, $max = NULL, $getResult = true) 
{ 
    $qb = $this->createQueryBuilder('AresAPITournamentBundle:Tournament');
    $query = isset($data['query']) && $data['query']?$data['query']:null; 

    $qb ->select('u'); 

    if ($query) { 
        $qb 
            ->andWhere('u.name like :query') 
            ->setParameter('query', "%".$query."%") 
        ; 
    } 

    if ($max) { 
        $qb ->setMaxResults($max) 
            ->setFirstResult($page * $max) 
        ; 
    } else { 
        $preparedQuery = $qb->getQuery();
    } 


    return $getResult?$preparedQuery->execute():$preparedQuery; 
} 

我在this tutorial找到了资源。

我如何实现这一目标?

1 个答案:

答案 0 :(得分:0)

回应是:

    $qb ->limit($to)
        ->skip($from);