Задать вопрос
theblabs
@theblabs

Как получить от PostgreSQL массив данных сразу в Json формате для Symfony?

Возможно ли из PostgreSQL получать из связанных таблиц данные сразу в J’son формате для Symfony? Сейчас сервер их преобразовывает и отправляет на фронт через API, полагаю это уменьшило бы время отработки запроса
  • Вопрос задан
  • 486 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 3
DarkRaven
@DarkRaven
разработка программного обеспечения
Можно.
У меня было что-то подобное:
SELECT u.id,
    u.login,
    u.fullname,
    to_json(ARRAY( SELECT r.*::record AS r
           FROM ( SELECT r_1.id,
                    r_1.code,
                    r_1.name
                   FROM (users_roles ur
                     JOIN roles r_1 ON (((r_1.isdeleted = false) AND (ur.role_id = r_1.id))))
                  WHERE (ur.user_id = u.id)) r)) AS role_info
   FROM users u
  WHERE (u.isdeleted = false)
  ORDER BY u.fullname, u.login;


Можно посмотреть вот тут: https://postgrespro.ru/docs/postgrespro/9.5/functi...
Ответ написан
Melkij
@Melkij
PostgreSQL DBA
В postgresql есть штатная агреггирующая функция json_agg. Поэтому возможно даже без привлечения хранимок.
Ответ написан
@alfangur
в любом случае вам прямая дорога в документацию.
на хабре есть несколько стайте о работе с json в postgresql.
в документации не все функции описаны по работе с json, с остальными можете ознакомиться через такой костыль (pgadmin 3, каталоги, postgresql, функции и там найти в алфавитном порядке json функции).
обращу ваше внимание на следующее, в postgresql есть два типа json (json, jsonb), какая в них разница не помню, я использую jsonb, и вам рекомендую использовать его.

в двух словах, очень удобно работать с jsonb в самой базе.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы