• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/orm/query/nosqlprimaryselector.php
  • Класс: Bitrix\Main\ORM\Query\NosqlPrimarySelector
  • Вызов: NosqlPrimarySelector::relayQuery
static function relayQuery(\Bitrix\Main\Data\Connection $connection, Query $query)
{
	// prepare select
	$select = array();

	foreach ($query->getSelectChains() as $selectChain)
	{
		$select[] = $selectChain->getLastElement()->getValue()->getName();
	}

	// prepare filter
	$filter = array();

	if ($query->getFilter())
	{
		foreach ($query->getFilter() as $filterElem)
		{
			if (is_array($filterElem))
			{
				$filter = array_merge($filter, $filterElem);
			}
			else
			{
				$filter[] = $filterElem;
			}
		}
	}
	elseif ($query->getFilterHandler()->hasConditions())
	{
		foreach ($query->getFilterHandler()->getConditions() as $condition)
		{
			$filter[] = $condition->getValue();
		}
	}

	$result = $connection->getEntityByPrimary($query->getEntity(), $filter, $select);

	return $result;
}