2013-12-21 205 views
22
Post 
    .findAll({where: {tag: 'news'}, limit: 10}) 
    .success(function(result) { ... }) 

如何插入日期在我的查詢與不使用sequelize.query按日期排序sequelize.js查詢

.findAll({ limit: 10, sort: [updatedAt, descending]}) 

回答

21

這裏整理的條件是語法:

Post.findAll({ limit: 10, order: '"updatedAt" DESC' }) 

這裏有更多examples來自官方文檔。

+0

這會導致錯誤:「updatedat」列不存在 –

+3

'「updatedAt」DESC ',但是,完美地工作 –

+2

看起來不再適用於Sequelize的新版本(我使用4.4),但Clarkie的答案奏效。我從此方法收到的錯誤消息似乎表明它已被棄用:「未處理的拒絕錯誤:順序必須是數組的類型或有效的方法的實例。」 – Josh1billion

58

@dankohn是正確的,將工作,但它是安全使用以下命令:

Post.findAll({ limit: 10, order: [['updatedAt', 'DESC']]}); 

,因爲這

will escape updatedAt and validate DESC against a list of valid direction parameters

+0

正確答案,已選擇的答案已棄用。 – Sandwich

1

以下是更清晰的語法

Post.findAll({ limit: 10, order: 'updatedAt DESC'});