Запрос данных в postgresql путем применения фильтра к столбцу JSONB - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть таблица с 2 столбцами; ID (int) and EntityData (JSON). Я создал объект фильтра в форме словаря в C #. Я хочу получить все строки, которые удовлетворяют данным пары ключ-значение в моем фильтре.

Пример фильтра:

{
    "Name": "mike",
    "Location": "Lagos"
}

и это должно привести меня ко всем строкам, у которых EntityData имеет Имя как mike и Местоположение как Лагос.

1 Ответ

0 голосов
/ 30 апреля 2018

Один запрос может выглядеть следующим образом:

SELECT * FROM table WHERE json_field->>'Name' = 'mike' AND json_field->>'Location' = 'Lagos'

Вы можете заменить 'mike' и 'Lagos' на заполнители параметров (@name, @location) и повторно запустить этот запрос для всех записей вашего словаря. Для оптимальной производительности вы также можете заранее подготовить команду и, возможно, даже объединить все запросы в одну команду, конкатенировав запрос несколько раз в один и тот же CommandText.

Смотрите полный список документов PG по операторам JSON .

...