Как запросить jsonb (postgtresql) в перьях / возражениях ORM? - PullRequest
0 голосов
/ 22 сентября 2019

Я прочитал документы из: https://github.com/feathersjs-ecosystem/feathers-objection Все еще не могу запросить столбец jsonb.

Моя таблица содержит: id, some_other_fields, segmentation: jsonb Столбцы сегментации имеют такие значения, как:

{"type": "WT", "group": "D", "style": 880, "design": 1, "subtype": "ABL"}

Как я могу запросить, например, type = "WT"?Код Sql:

select *
from products
where segmentation ->> 'type' = 'WT';

, но код ORM:

const query = {             
segmentation: {type:"WT"}
};

не работает.

Все, что мне удалось получить, было: Bad request.... "segmentation" = $1 - invalid input syntax for type json при игре ссинтаксис или нет результата вообще.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 30 сентября 2019

В случае, если кто-то еще наткнется на это, ответ таков: в your_service_name.model.js вы ДОЛЖНЫ ОБЪЯВИТЬ схему json с помощью:

properties: {
                your_jsonb_property: {type: 'object'}
            }

Схема Json является необязательной, но она не будет работать без нее.

0 голосов
/ 23 сентября 2019

С возражением вы должны указать ORM при ссылке на атрибут json внутри столбца:

.where({'segmentation:type' : 'WT'})

Проверка

https://vincit.github.io/objection.js/recipes/json-queries.html

и

https://vincit.github.io/objection.js/api/types/#type-fieldexpression

...