node.js - 按日期排序包含多个日期的列表

标签 node.js sql-order-by sequelize.js

我正在构建一个显示事件列表的页面。每个事件都发生在一个或两个连续的日期。问题是这些事件应该在这些日期之前排序。 我使用 Sequelize.js。

例如: event1 - 7 月 13 日和 14 日应该在 event2- 7 月 10 日和 11 日之前显示,因为它是最近的。

我有两个表:具有一对多关系的 Events 和 EventDates。

 Event.findAll({ 
        include: [
            { model:EventDates, order: [ [ 'date', 'DESC' ]] },                  
        ],

    })

这只会对一个事件的两个日期进行排序,但不会比较不同事件的日期。

如何进行订单操作?

EventDates 模型:

var EventDates= sequelize.define('eventdates', {    
  date: {
    type: Sequelize.DATE
  },
  availabletickets: {
   type: Sequelize.INTEGER
  },
},
{
  freezeTableName: true
});

和事件模型:

var Event = sequelize.define('event', {
  title: {
    type: Sequelize.STRING,
  },
  slug: {
    type: Sequelize.STRING
  },
   description: {
    type: Sequelize.STRING
  },
  isDeleted:{
   type: Sequelize. BOOLEAN,
   defaultValue: false
  },

}
});

最佳答案

在您当前的代码中,您仅在 Eventdates 内进行排序,您也必须对整个列表进行排序:

Event.findAll({ 
        include: [
            { model:EventDates, order: [ [ 'date', 'DESC' ]] },                  
        ],
        order: [[ EventDates , 'date', 'DESC']]

    })

关于node.js - 按日期排序包含多个日期的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45733730/

相关文章:

javascript - 如何使用 nodejs 通过套接字从服务器到客户端进行通信?

mysql - 同一列上有 2 个 INNER JOIN 的 SQL 不起作用

sequelize.js - 按虚拟字段序列化查询

mysql - 如何在nodejs中使用hooks/sequelize更新数据库

mysql - Sequelize 连接表不返回附加字段

node.js - 在端口和将 React/Node 项目部署到 digital ocean 方面遇到问题

javascript - 如何为 passport.authenticate 创建可重复使用的代码?

javascript - aws lambda拒绝文件上传

sql - Oracle Insert Select with order by

mysql - 在mysql中对具有2集数的行进行排序