Как отфильтровать столбец json для указанного значения c? - PullRequest
0 голосов
/ 20 апреля 2020

Я на postgres и у меня есть таблица orders со столбцом data, который является jsonb. Вот сжатый пример данных в одном из них - у них есть ключи UUID и значение { id, value }

  {
    '36462bd9-4ffa-4ee3-9a04-c2eb7575fe6c': {
      id: '',
      value: '2020-04-20T01:32:14.017Z',
    },
    '9baaed61-1275-4bbc-ae4f-2994ec9f7fda': { id: '4', value: 'Paper Towels' },
  }

Как я могу выполнять такие операции, как поиск заказов, где data имеет некоторый UUID ( ie. 9baaed61-1275-4bbc-ae4f-2994ec9f7fda) и { id: '4' }?

1 Ответ

1 голос
/ 21 апреля 2020

Вы можете использовать оператор содержимого @>

select *
from the_table
where data @> '{"9baaed61-1275-4bbc-ae4f-2994ec9f7fda": {"id": "4"}}'; 

Предполагается, что неверный JSON id: '4' из вашего вопроса действительно хранится как "id":"4". Если значение хранится в виде числа: "id": 4, его необходимо использовать в качестве значения сравнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...