如果Symfony- MongoDB-ODM中的数据为空,则对odm查询(光标)执行count()
不会返回“ 0”
$query = $this->dm->createQueryBuilder('AppBundle:DocumentName');
$count = $query->getQuery()->count();
变量$count
始终返回大于零(“ 0”)的值。即使文档中没有数据
注意:将光标转换为数组会占用更多内存,请原谅此方法。
答案 0 :(得分:0)
您应该这样做:
$count = $query->getQuery()->getSingleScalarResult();
致谢
答案 1 :(得分:0)
您可以使用AggregationBuilder。在您的documentNameRepository中尝试以下代码:
$qb = $this->createAggregationBuilder('Document\DocumentName');
$qb->count('nb_documents');
$results = $qb->execute();
return $results;
您可以在计数之前执行where操作,如下所示:
$qb->match()
->field('field_name')
->equals(10);
您可以在进行如下计数之前执行限制和跳过操作:
$qb->skip(10)
->limit(100);
您可以阅读the documentation。