次の問題があります。distinct を使用する場合、結果の数を制限できません。例:
$stores = $this->dm->createQueryBuilder('Application\Document\Item')
->distinct('storeName')
->limit(10)
->getQuery()
->execute();
このクエリは 100 個のエントリをレンダリングしますが、10 個の結果のみが必要です。
次の問題があります。distinct を使用する場合、結果の数を制限できません。例:
$stores = $this->dm->createQueryBuilder('Application\Document\Item')
->distinct('storeName')
->limit(10)
->getQuery()
->execute();
このクエリは 100 個のエントリをレンダリングしますが、10 個の結果のみが必要です。
クエリビルダークラスでは、ORM
次を使用する必要があります:
->setMaxResults(10);
@Siolと@john Smithが言ったように、ODM
制限を使用できます:
->limit(10);
Jira mongodb issue ticket Ability to use Limit() with Distinct() :
現在の Distinct() 実装では、コレクション内のすべての個別の値を戻すか、クエリに一致させることしかできませんが、これらの結果を制限する方法はありません。これは非常に便利で、多くのユースケースがあります。