/** * filter * * Apply the query filter * * @param \Doctrine\MongoDB\Query\Builder $qb * @return \Doctrine\MongoDB\Query\Expr $expr */ public function filter(Query\Builder $qb) { $qb->sort($this->fieldName, $this->fieldValue); if (null !== $this->spec) { return $this->spec->filter($qb); } }
/** * {inheritdoc}. */ protected function applySorting(QueryBuilder $queryBuilder, array $sorting = null) { if (null === $sorting) { return; } foreach ($sorting as $property => $order) { $queryBuilder->sort($this->getPropertyName($property), $order); } }
/** * Constructor. * * @param \Doctrine\MongoDB\Query\Builder $queryBuilder * @param null|\Staffim\DTOBundle\Collection\Pagination $pagination * @param null|\Staffim\DTOBundle\Collection\Sorting $sorting */ public function __construct(Builder $queryBuilder, Pagination $pagination = null, Sorting $sorting = null) { $this->query = $queryBuilder->getQuery(); $this->count = $this->query->count(); if ($sorting || $pagination) { if ($sorting) { $queryBuilder->sort($sorting->fieldName, $sorting->order); } if ($pagination) { if ($pagination->limit) { $queryBuilder->limit($pagination->limit); } if ($pagination->offset) { $queryBuilder->skip($pagination->offset); } $this->pagination = $pagination; } $this->query = $queryBuilder->getQuery(); } }
/** * @param QueryBuilder $queryBuilder * @param array $sorting */ protected function applySorting(QueryBuilder $queryBuilder, array $sorting = array()) { foreach ($sorting as $property => $order) { $queryBuilder->sort($property, $order); } }