/** * 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(); } }
public function getQuery() { if ($this->type === self::TYPE_MAP_REDUCE) { $this->hydrate = false; } $query = $this->expr->getQuery(); $query = $this->dm->getUnitOfWork()->getDocumentPersister($this->class->name)->prepareQuery($query); $this->expr->setQuery($query); $query = parent::getQuery(); return new Query($query, $this->dm, $this->class, $this->hydrate); }
/** * @inheritdoc */ public function getNumObjects() { return $this->qb->getQuery()->count(); }