sequlize n:m include order 排序
model.Form.belongsToMany(model.Issue, { through: model.FormIssue,foreignKey:'formId',as:'formIssue'});
model.Issue.belongsToMany(model.Form, { through: model.FormIssue,foreignKey:'issueId',as:'issueForm'});
model.FormIssue:
const FormIssue = app.model.define('fromIssue', {
id: { type: INTEGER, primaryKey: true, autoIncrement: true },
formId:{
type:INTEGER,
allowNull:false,
comment:'问题表单Id'
},
issueId:{
type:INTEGER,
allowNull:false,
comment:'问题Id'
},
createdAt: DATE,
updatedAt: DATE,
deletedAt : DATE,
});
查询:
let form=await ctx.model.Form.findOne({
where:{id:formId},include:[
{
model:ctx.model.Issue,
as:'formIssue'
},
]
});
是能查到结果没问题的,问题查询到的formIssue问题列表并没有根据formIssue表的是时间排序。
无论操作时的时间顺序如何,查询出来的顺序都是一样的。
我希望formIssue问题列表的顺序句添加到多对对表的createdAt排序,而不是根据Issue自己本来的创建的createdAt排序
网上看到order可以引入模型
于是尝试:
let form=await ctx.model.Form.findOne({
where:{id:formId},include:[
{
model:ctx.model.Issue,
order:[[model.FormIssue,'createdAt','DESC']]
as:'formIssue'
},
]
});
最终还是无效,请教下大家怎么解决?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
order 要伴随 limit 使用才可生效
试了下,真的要哟limit,order才生效,在include里面