Мне кажется, что я ударил кирпичную стену, превратив свою прежнюю функциональность PHP-приложения в Node и Sequelize. Возможно, я приближаюсь к тому, что может сделать ORM, но просто хочу спросить, прежде чем я сдаюсь.Как заказать по агрегатной функции в sequelize
Представим себе три таблицы: Video
, Task
, PublishDate
.
Приложение требует, чтобы Video
может иметь несколько PublishDate
s и несколько Task
s. У Task
s будут указаны сроки, рассчитанные путем просмотра минимума Video
's PublishDate
s.
Так что, если 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
})
Я не воодушевлен тем, что я направляюсь в правильном направлении, потому что даже без оговорки порядка, эта попытка возвращает только одну запись. Тем не менее, это кажется самым близким, что я был весь день, и мне не хватает информации или синтаксиса, которые сделают это возможным.
Это мой первый набег на мир ОРМ, поэтому я извиняюсь, если есть что-то простое, что мне не хватает. Я попытался наилучшим образом изучить документацию и другие вопросы в Google, но пока не повезло.