我覺得自己好像碰到了磚牆,同時將舊的PHP應用程序功能轉換爲Node和Sequelize。也許我正在接近ORM能做的限制,但只是在我放棄之前想問一下。讓我們想象三個表格:Video
,Task
,PublishDate
。如何通過聚合函數在次序中排序
該應用要求Video
可能有多個PublishDate
和多個Task
s。 Task
s的截止日期將通過查看Video
的最小值PublishDate
s來計算。
因此,如果Video
有2015-12-01
和2015-08-15
2分PublishDate
的,我們會把使用2015-08-15
和執行額外的計算上獲得Task
到期日。
當我試圖獲得按其計算到期日期排列的Task
列表時,會出現此問題。
我試過很多不同的方法。這一最新嘗試嘗試使用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
})
我不鼓勵,我在正確的方向我當家,因爲即使沒有訂單條款,這一嘗試只返回一個記錄。儘管如此,這感覺就像我一整天都離我最近的一樣,而且我錯過了一些信息或語法,這將使這成爲可能。
這是我第一次進入ORM世界,所以我很抱歉,如果有一些簡單的東西我錯過了。我盡最大努力研究Google上的文檔和其他問題,但迄今爲止還沒有運氣。