такую проблему:
                  
                  
                  
                  
                  
                  Есть массив объектов и нужно проверить, есть ли в этом массиве объект, который содержит ключ, в котором есть нужное мне значение
                  
                  
                  
                  
                  
                  Пример:
                  
                  
                  
                  
                  
                  [
                  
                  
                    {
                  
                  
                      "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 если версия позволяет
Обсуждают сегодня