sequelize.js - 是否可以为 Sequelize 模型定义默认排序顺序

标签 sequelize.js

我正在寻找一种方法来为 sequelize 中的模型定义默认排序顺序,以便记录始终按给定字段的字母顺序排序,例如 - 类似于具有“名称”字段的用户模型,当我执行 User.findAll() 时,我希望用户默认按字母顺序排序。

这个问题不是关于如何在 findAll 选项中定义排序顺序的问题,我已经知道该怎么做:

User.findAll({ order: [['name', 'ASC']] })

我想要类似 Rails 默认排序顺序的东西:

class User < ActiveRecord::Base
  default_scope { order(name: :desc) }
end

我不得不承认,我还没有详细阅读我现在正在做的 sequelize 文档,但是如果有人能同时指出它的话

最佳答案

长话短说

可以将默认作用域应用于模型,大致如下:

MyGreatModel.addScope('defaultScope', {
  order: [['id', 'ASC']],
}, { override: true })

我找到了 2 个非常有用的资源来回答我的问题,首先,the sequelize docs about scopes 我知道要从 this github issue 上的答案中寻找这个

关于sequelize.js - 是否可以为 Sequelize 模型定义默认排序顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54117521/

相关文章:

node.js - 正确使用 sequelize distinct 选项(在 postgres 上)

node.js - 有没有办法从返回的 create() 对象中排除属性?

node.js - 如何在 Sequelize 中执行 "WHERE",但排除嵌套模型?

node.js - Node and sequelize -> .catch(...) 没有按预期工作

node.js - Sequelize : hasMany is not a function

sequelize.js - 如何在 Sequelize 中使用偏执狂?

node.js - sequelize 如何在 Model.update 中引用实例

postgresql - 如果值大于最大值,则从上一行值中减去值

mysql - 如何在 Sequelize 和 Mysql 中编写此查询

node.js - 将 Sequelize/ORM 与 Postgres 扩展类型(如 LTREE 和 HSTORE)一起使用