按日期排序sequelize.js查询

khe*_*hex 26 javascript node.js sequelize.js

Post
  .findAll({where: {tag: 'news'}, limit: 10})
  .success(function(result) { ... })
Run Code Online (Sandbox Code Playgroud)

如何在我的查询中插入按日期排序的条件而不使用sequelize.querylike

.findAll({ limit: 10, sort: [updatedAt, descending]})
Run Code Online (Sandbox Code Playgroud)

Cla*_*kie 92

@dankohn是正确的,这将工作,但使用以下更安全:

Post.findAll({ limit: 10, order: [['updatedAt', 'DESC']]});
Run Code Online (Sandbox Code Playgroud)

就这样

将转义updatedAt并根据有效方向参数列表验证DESC

  • 正确答案,不推荐选择答案. (6认同)
  • 这个像魅力一样运作!所选的一个已弃用。 (2认同)

Dan*_*ohn 21

这是语法:

Post.findAll({ limit: 10, order: '"updatedAt" DESC' })
Run Code Online (Sandbox Code Playgroud)

以下是官方文档中的更多示例.

  • @Sandwich在新版本中应该像`Post.findAll({limit:10,order:[['updatedAt','DESC']]})`.编辑:没看到最后的回复. (7认同)
  • 然而,"updatedAt"DESC'完美无缺 (3认同)
  • 似乎不再适用于较新版本的Sequelize(我正在使用4.4),但Clarkie的回答有效.我从此方法收到的错误消息似乎表明它已被弃用:"未处理的拒绝错误:订单必须是数组的类型或有效的sequelize方法的实例." (2认同)
  • 已过时.`未处理的拒绝错误:订单必须是数组的类型或有效的sequelize方法的实例 (2认同)