code: public function findByContentTypeAndCondition($language, $contentType = '', $choiceType = self::CHOICE_AND, $condition = null, $siteId = null)
      {
          $qa = $this->createAggregationQuery();
          $qa->match($this->generateFilterPublishedNotDeletedOnLanguage($language));
          if (!is_null($siteId)) {
              $qa->match($this->generateSiteIdAndNotLinkedFilter($siteId));
          }
          $filter = $this->generateContentTypeFilter($contentType);
  
          if ($filter && $condition) {
              $qa->match($this->appendFilters($filter, $this->transformConditionToMongoCondition($condition), $choiceType));
          } elseif ($filter) {
              $qa->match($filter);
          } elseif ($condition) {
              $qa->match($this->transformConditionToMongoCondition($condition));
          }
  
          $qa = $this->generateLastVersionFilter($qa);
  
          return $this->hydrateAggregateQuery($qa, self::ALIAS_FOR_GROUP);
      }
docs: @param string      $language
  @param string      $contentType
  @param string      $choiceType
  @param string|null $condition
  @param string|null $siteId
  
  @return array