loopback-connector- postgresql: jsonpath в состоянии "где" - PullRequest
0 голосов
/ 27 февраля 2020

Модель хранится в postgresql. Что-то вроде:

{
    id: <serial>
    data: <json> {
        someIds: [<int>, ...]
    }
}

Как добавить правило jsonb_path_match(data::jsonb, 'exists($.someIds[*] ? (@ == 3))') в фильтр (где)? В этом случае значение '3' '(@ == 3)' определяется пользователем.

1 Ответ

0 голосов
/ 30 марта 2020

loopback-connector- postgresql пока не поддерживает тип данных JSON / JSONB. Существует открытый запрос на добавление такой возможности, но он никогда не был завершен автором - см. # 401 .

В качестве обходного пути вы можете выполнить пользовательский запрос SQL для выполните поиск ваших данных на основе jsonb_patch_match.

Инструкции для LoopBack 3: https://loopback.io/doc/en/lb3/Executing-native-SQL.html

dataSource.connector.execute(sql_stmt, params, callback);

Инструкции для LoopBack 4: https://loopback.io/doc/en/lb4/apidocs.repository.defaultcrudrepository.execute.html

const result = await modelRepository.execute(sql_stmt, params, options);
...