官网上面的例子
www.sequelize.com.cn/advanced-as…
Company.findAll({
include: Division,
order: [
// 我们从要排序的模型开始排序数组
[Division, 'name', 'ASC']
]
});
Division指的是对关联的哪个表进行排序
1基础用法
Company.findAll({
order: [
['name', 'DESC']
]
});
主要是利用order属性进行排序,这个name是前面没有指定哪个表,就是指主表里面的
用 DESC 表示按倒序排序(即:从大到小排倒序) ---降序排列 (descend:下降,`掉落`)
用 ACS 表示按正序排序(即:从小到大排序)---升序排列 (ascend:上升)
如何记忆: 雨是从天上掉落,雨水珠从大到小的掉落,那么我们一般需要对时间进行排序,都是从大到小的,最新的日期放前面,用DESC
2关联了子表,还是用的hasMany关联的,怎么对返回的数据进行排序
Company.findAll({
order: [
['name', 'DESC'], [ 'vipPaidInfo', 'createdAt', 'DESC' ]
],
include: [{
model: this.app.model.HxVipPaid,
as: 'vipPaidInfo',
attributes: [ 'quantity', 'expiredAt', 'createdAt' ],
},
]
});
例如上面我company可能有一个公司对应多个vip的供应商,我想拿到最新的一个供应商的信息,这时候我期望的是返回的子表数据也是按照时间到倒序进行排列,直接在order上加一个数组就行[ 'vipPaidInfo', 'createdAt', 'DESC' ]这里的vipPaidInfo就是关联词
3.结果展示
做一天前端就好好学习吧~