/** * Returns the assembled aggregation pipeline * * For pipelines where the first stage is a $geoNear stage, it will apply * the document filters and discriminator queries to the query portion of * the geoNear operation. For all other pipelines, it prepends a $match stage * containing the required query. * * @return array */ public function getPipeline() { $pipeline = parent::getPipeline(); if ($this->getStage(0) instanceof GeoNear) { $pipeline[0]['$geoNear']['query'] = $this->applyFilters($pipeline[0]['$geoNear']['query']); } else { $matchStage = $this->applyFilters([]); if ($matchStage !== []) { array_unshift($pipeline, ['$match' => $matchStage]); } } return $pipeline; }
/** * Returns the assembled aggregation pipeline * * @return array */ public function getPipeline() { return $this->builder->getPipeline(); }