/**
* 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();
}
}