Как делать поиск записей таблицы по полю типа JSONB?

Имеется Laravel 7 и СУБД PostgresSQL 11. В ней таблица users. В таблице users есть поле contacts с типом JSONB. Структура данных в поле contacts такая:
{
    "phones": [
        { "value": "89999999999" },
        { "value": "81111111111" }
    ]
}


Возможнен ли поиск записи по полю value с помощью whereJsonContains? Если нет то как можно решить задачу?
  • Вопрос задан
  • 146 просмотров
Решения вопроса 2
yellow79
@yellow79
Senior Software Engineer
SELECT * FROM table where data->'phones' @> '[{"value":"81111111111"}]'
Ответ написан
@doanbaanh Автор вопроса
Нашел решение для Laravel:
$query->whereJsonContains('contacts->phones', [['value' => '81111111111']]);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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