/** * @return \Cubiche\Infrastructure\Repository\Doctrine\ODM\MongoDB\QueryBuilder */ protected function queryBuilder() { if ($this->queryBuilder === null) { $this->queryBuilder = new QueryBuilder($this->dm, $this->documentName, $this->specificationVisitorFactory, $this->comparatorVisitorFactory); if ($this->isFiltered()) { $this->queryBuilder->addSearchCriteria($this->searchCriteria()); } if ($this->offset !== null) { $this->queryBuilder->skip($this->offset); } if ($this->length !== null) { $this->queryBuilder->limit($this->length); } if ($this->isSorted()) { $this->queryBuilder->addSortCriteria($this->sortCriteria()); } } return $this->queryBuilder; }
/** * @param QueryBuilder $queryBuilder1 * @param QueryBuilder $queryBuilder2 * * @return bool */ protected function hasSameOperator(QueryBuilder $queryBuilder1, QueryBuilder $queryBuilder2) { $intersection = new ArrayHashMap(\array_intersect_key($queryBuilder1->getQueryArray(), $queryBuilder2->getQueryArray())); return $intersection->keys()->findOne(Criteria::callback(function ($value) { return \strpos($value, '$') === 0; })) !== null; }