Doctrine2 ODM限制不起作用/ mongodb

时间:2014-06-17 21:11:34

标签: php mongodb symfony doctrine-orm

我试图跳过并限制结果,但我甚至没有限制结果。

这是我的代码

    $limit=5;
    $fooQueryBuilder = $this->mongo->getManager()->createQueryBuilder('CustomCoreBundle:Foo');
    $foos=$fooQueryBuilder->limit($limit)->getQuery()->execute();

    var_dump(count($foos));
    exit;

并且var_dump返回

int(321235)

这等于数据库中的所有实体,我做错了什么?

$this->mongo->getManager() 

的实例
Doctrine\ODM\MongoDB\DocumentManager

,构建器是

的实例
Doctrine\ODM\MongoDB\Query\Builder"

我只是不明白什么是错的,谢谢任何提示

3 个答案:

答案 0 :(得分:7)

所以,我自己找到了答案

it is working !

我学到了:

当你计算()一个游标时,无论查询是什么,它都会返回数据库中所有实体的数量。

所以我检查计数光标以查看限制是否有效

答案 1 :(得分:0)

使用count($ result-> toArray())来解决我的问题

try:
  # See if client has disconnected.
  try:
    data = (await asyncio.wait_for(client_reader.readline(),timeout=0.01))
  except ConnectionResetError, ConnectionAbortedError) as e:
    break  # Client disconnected
except TimeoutError:
  pass  # Client hasn't disconnect

答案 2 :(得分:0)

您可以使用$result->count($foundOnly = true)