Sequelize: как использовать оператор AND в WHERE для одного столбца? - PullRequest
1 голос
/ 28 апреля 2020

У меня есть этот запрос:

model.findAndCountAll({
  attributes: ['FirstName', 'LastName'],
  include: [{
    model: models['hobbies'],
    as: 'Hobbies',
    attributes: ['ID', 'Name'],
    where: {
      [Sequelize.Op.and]: [
        { 'ID': 1 },
        { 'ID': 2 }
      ]
    }
  }]
})

Я пытаюсь получить сотрудника с двумя хобби, указанными в запросе, хотя он возвращает 0 строк. Оператор AND не работает при применении к одному и тому же столбцу. Можно ли обработать запрос такого типа?

Данные таблицы сотрудников:

 EmployeeID | FirstName | LastName | HobbyID
------------+-----------+----------+----------
          1 | John      | Doe      | 1
          1 | John      | Doe      | 1
          2 | Jane      | Doe      | 1

Ассоциация таблиц сотрудников:

model.hasMany(models['Hobbies'], { as: 'Hobbies', foreignKey: 'EmployeeID', targetKey: 'EmployeeID' });

Вывод:

{
  count: 0,
  rows: []
}

Ожидаемый результат:

{
  FirstName: "John",
  LastName: "Doe",
  Hobbies: [
    { Name: "Sports - Basketball" },
    { Name: "Sports - Volleyball" }
  ]
}

И он всегда должен возвращать сотрудников с обоими указанными хобби.

...