/** * Подгрузка инфы о зданиях * * @param \MongoClient $mongo * @param $result * * @return array */ protected function _loadBuilding(\MongoClient $mongo, $result) { $buildingIds = []; foreach ($result as $row) { $buildingIds[] = (int) $row['building_id']; } $buildingIds = array_unique($buildingIds); $buildingsData = $mongo->selectCollection('gis', 'buildings')->find(['id' => ['$in' => $buildingIds]]); $buildingsData = ArrayHelper::indexBy($buildingsData, 'id'); foreach ($result as $key => $row) { $result[$key]['building'] = ['id' => $row['building_id'], 'address' => $buildingsData[$row['building_id']]['address']]; unset($result[$key]['building_id']); } return $result; }