【问题标题】:How can I sort by a nested JSONB attribute in sequelize如何按 sequelize 中的嵌套 JSONB 属性排序
【发布时间】:2018-11-13 16:51:37
【问题描述】:

我想通过 JSONB 对象的嵌套属性对 sequelize 查询进行排序。

我有一个这样的模型:

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

价格是这样的:

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

我想按 price.EUR 对 findAll 查询进行排序。我希望这可行:

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

但我得到一个未排序的数组。

底层数据库是 postgres。

一种解决方案是在 javascript (array._prototype.sort()) 中以编程方式对结果进行排序。但我想知道是否可以使用 sequelize 查询。

【问题讨论】:

    标签: javascript postgresql sequelize.js


    【解决方案1】:

    试试这个:

    roduct.findAll({ where: { available: true }, order: [[sequelize.literal('price->>\'EUR\''), 'ASC']] }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-13
      • 2017-07-04
      • 2017-06-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多