2016-05-09 50 views
0

现在我创建了一个可以工作的函数,它获取当前时间之前的所有消息。但事情是,它从最早的消息开始,这不是我想要做的。需要帮助查询日期降序排序

什么是最好的解决方法或使用sequelize解决此问题?

module.exports.getMessages = function(chat_name, ammount, callback){ 
     Message.findAll({ 
      limit: ammount, 
      where: { 
       chat: chat_name, 
       createdAt:{ 
        $lt: new Date(), 
       } 
      } 
     }).then(function(dates){ 
      return callback(null, dates) 
     }).catch(function(err){ 
      return callback(err, null); 
     }) 
    } 

回答

0

您需要添加order属性对象传递到findAllorder: [['createdAt', 'DESC']]

module.exports.getMessages = function(chat_name, ammount, callback){ 
     Message.findAll({ 
      limit: ammount, 
      where: { 
       chat: chat_name, 
       createdAt:{ 
        $lt: new Date(), 
       } 
      }, 
      order: [['createdAt', 'DESC']] 
     }).then(function(dates){ 
      return callback(null, dates) 
     }).catch(function(err){ 
      return callback(err, null); 
     }) 
    } 
http://docs.sequelizejs.com/en/latest/docs/querying/#ordering

更多