Сиквелировать — Как искать по ассоциации только в одном из случаев?

#sequelize.js

Вопрос:

Я пытаюсь найти 2 вида записей :

  • Страницы с типом страницы «общий»
  • Все страницы с типом страницы «конкретный» И идентификатором профессии, равным параметру, который я передаю.

Единственный способ, который я нашел, — это выполнить два запроса :

 static getPagesForProfession(professionID) {
  return Promise.all([
    Page.findAll({
      where: {
        pageType: "generic",
      },
    }),
    Page.findAll({
      where: {
        pageType: "specific",
      },
      include: [
        {
          model: sequelize.models.Profession,
          as: "Professions",
          where: {
            id: professionID,
          },
        },
      ],
    }),
  ]);
}
 

Есть ли способ сделать это в одном запросе ?

Page связан со Profession многими — многими отношениями с таблицей соединений.

Комментарии:

1. Какая связь существует между Page и Profession ?

2. Многие ко многим с таблицей объявлений.

3. Вы можете попытаться переместить условие id: professionID в where параметр страницы, например $Professions.id$ : professionID, но я не уверен, что это сработает. В любом случае, такие условия на столе в отношениях M:N не были бы эффективными. Возможно, вам нужно подумать о включении таблицы соединений и добавить туда это условие.