Doctrine\ODM\MongoDB\DocumentRepository::matching PHP Method

matching() public method

Selects all elements from a selectable that match the expression and returns a new collection containing these elements.
See also: Selectable::matching()
public matching ( Doctrine\Common\Collections\Criteria $criteria ) : Doctrine\Common\Collections\Collection
$criteria Doctrine\Common\Collections\Criteria
return Doctrine\Common\Collections\Collection
    public function matching(Criteria $criteria)
    {
        $visitor = new QueryExpressionVisitor($this->createQueryBuilder());
        $queryBuilder = $this->createQueryBuilder();
        if ($criteria->getWhereExpression() !== null) {
            $expr = $visitor->dispatch($criteria->getWhereExpression());
            $queryBuilder->setQueryArray($expr->getQuery());
        }
        if ($criteria->getMaxResults() !== null) {
            $queryBuilder->limit($criteria->getMaxResults());
        }
        if ($criteria->getFirstResult() !== null) {
            $queryBuilder->skip($criteria->getFirstResult());
        }
        if ($criteria->getOrderings() !== null) {
            $queryBuilder->sort($criteria->getOrderings());
        }
        // @TODO: wrap around a specialized Collection for efficient count on large collections
        return new ArrayCollection($queryBuilder->getQuery()->execute()->toArray(false));
    }