такую проблему:
Есть массив объектов и нужно проверить, есть ли в этом массиве объект, который содержит ключ, в котором есть нужное мне значение
Пример:
[
{
"type": 3,
"id": 15,
"Date": "25-11-2014",
},
{
"type": 4,
"id": 16,
"Date": "25-11-2017",
}
]
Есть ли в этом массиве объект, в котором присутствует "id": 16?
вы уверены что это массив?
это разовая операция или частая?
https://postgrespro.ru/docs/postgresql/14/datatype-json#JSON-INDEXING
Если кому интересно - решил примерно так: SELECT ... FROM ... WHERE 1 = 1 AND EXISTS (SELECT 1 FROM jsonb_array_elements(certificates) as j(data) WHERE (data#>> ''{id}'')::int = 16)
это не очень хороший способ, лучше вообще смотреть в jsonpath если версия позволяет
Обсуждают сегодня