Doctrine ODM 分页去重查询

3

我有以下问题:在使用distinct时,我无法限制结果数量。例如:

$stores = $this->dm->createQueryBuilder('Application\Document\Item')
   ->distinct('storeName')
   ->limit(10)
   ->getQuery()
   ->execute();

这个查询会返回100条结果,但我只想要10条。

2个回答

1
使用 ORM 中的查询构建器类,您需要使用:

ORM中的查询构建器类,您需要使用:

->setMaxResults(10);

根据 @Siol 和 @john Smith 的说法,在 ODM 中,您可以使用 limit:
->limit(10);

1
setMaxResults() 只适用于 Doctrine ORM,而不适用于 ODM。 - Siol
对于ODM\MongoDB\Query\Builder来说,只需要使用->limit(1)。 - john Smith

0

我认为在 Jira mongodb 问题票据中建议的使用 limit 的 distinct 方法不起作用能够使用 Limit() with Distinct():

当前的 Distinct() 实现只允许返回集合中所有不同的值或匹配查询,但没有办法限制这些结果。这将非常方便,有许多用例。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接