Mat*_*nry 5 mysql sql orm sequelize.js
在将旧的PHP应用程序功能转换为Node和Sequelize时,我感觉自己仿佛碰到了一堵砖墙.也许我正在接近ORM可以做的极限,但只是想在我放弃之前询问.
让我们想象一下三个表:Video,Task,PublishDate.
该应用程序要求a Video可能有多个PublishDates和多个Tasks.该Task旨意有因通过查看最小的计算日期Video的PublishDate秒.
因此,如果Video有两个PublishDate第2015-12-01和2015-08-15,我们会使用2015-08-15和执行额外的计算以获取Task到期日.
当我试图获得Task按计算的截止日期排序的s 列表时,会出现问题.
我尝试了很多不同的方法.这个最新的尝试尝试使用该sequelize.fn功能
models.Task.findAll({
where: {isActive: false, isCompleted: false},
include: [
{
model: models.Video,
attributes: [[sequelize.fn('min', 'video.publishDates.date'), 'dueDate']],
include: [models.PublishDate]
}
],
order: [['video', 'dueDate', 'ASC']],
limit: 50
})
Run Code Online (Sandbox Code Playgroud)
我并不鼓励我朝着正确的方向前进,因为即使没有订单条款,这种尝试也只会返回一条记录.尽管如此,这感觉就像我一直都是最接近的一样,而且我缺少一些可以使这成为可能的信息或语法.
这是我第一次涉足ORM世界,所以如果有一些我想念的简单,我会道歉.我尽力了解Google上的文档和其他问题,但到目前为止还没有运气.
您需要使用该功能进行订购。你应该试试:
order : [['video','ASC'],[sequelize.fn('min', 'video.publishDates.date'), 'ASC']]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1810 次 |
| 最近记录: |