В настоящее время у меня есть запрос, который возвращает массив Projects
, и он также включает модель с именем Campaign
.Моя модель Campaign
имеет столбец с именем status
, который либо ACTIVE
, либо PAUSED
.Для каждого Project
в моем массиве я хочу получить количество всех кампаний ACTIVE
, которые в нем содержатся, а затем я хочу упорядочить свой массив Projects
в порядке убывания в соответствии с этим количеством.
Другими словами, я хочу, чтобы все кампании Projects
с ACTIVE
отображались в верхней части массива, который я получаю по завершении моего запроса.
const query = { id: { $in: ids } };
models.Project.findAndCountAll({
where: query,
limit: PROJECT_PAGE_SIZE,
offset: (PROJECT_PAGE_SIZE * (pageNumber - 1)),
distinct: true,
attributes: Object.keys(models.Project.attributes).concat([
[sequelize.literal('(SELECT SUM("strategies_data"."spend") FROM "strategies_data" WHERE "strategies_data"."project_id" = "Project"."id")'),
'total_spend'],
[sequelize.literal('(SELECT SUM("strategies_data"."impressions") FROM "strategies_data" WHERE "strategies_data"."project_id" = "Project"."id")'),
'total_impressions'],
]),
include: [{
model: models.Campaign,
attributes: ['id', 'name', 'status'],
include: [{ model: models.Channel }, { model: models.Strategy }],
}],
})