Как я могу сортировать по вложенному атрибуту JSONB в sequelize - PullRequest
0 голосов
/ 13 ноября 2018

Я хочу отсортировать запрос на продолжение по вложенному атрибуту объекта JSONB.

У меня есть такая модель:

sequelize.define('product', {
    available: { type: Sequelize.BOOLEAN },
    price: { type: Sequelize.JSONB },
    ...
}

, где цена является такой:

price = {
    EUR: 1.2,
    CHF: 1.3,
}

Я хочу отсортировать запрос findAll по цене .EUR. Я надеялся, что это работает:

product.findAll({ where: { available: true }, order: [['price.EUR', 'ASC']] }

Но я получаю несортированный массив.

Базовая база данных - это postgres.

Решением является программная сортировка результата в javascript (array._prototype.sort ()). Но мне интересно, возможно ли это с помощью запроса сиквела.

1 Ответ

0 голосов
/ 16 ноября 2018

попробуйте это:

roduct.findAll({ where: { available: true }, order: [[sequelize.literal('price->>\'EUR\''), 'ASC']] }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...