SEQUELIZE: Заказ по COUNT связанной модели - PullRequest
0 голосов
/ 09 июня 2018

В настоящее время у меня есть запрос, который возвращает массив 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 }],
  }],
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...