Есть ли способ включить массив в предложение where: $ или с помощью sequelize? - PullRequest
0 голосов
/ 31 марта 2019

У меня есть массив идентификаторов teamIdsSelected = ['1', '5', .., 'X']

Затем из таблицы «Вызов» я хочу получить все задания, связанные с каждым teamId, из массива teamIdsSelected. Пока что это то, что я пробовал:

  1. Использование этой функции:
    createWhereClause(column, field) {
        return models.sequelize.where(
            models.sequelize.literal(`${column} in (`),
            `'${field}'`,
            models.sequelize.literal(')'))
    },
  1. Получать испытания таким образом:
    const challenges = await Challenge.findAndCountAll({
        where: {
            team_id: createWhereClause(team_id, teamsIdsSelected)
        }
    })

Но это не работает, я получаю вызов только с team_id, равным последнему пункту teamsIdsSelected = teamsIdsSelected.slice(-1)[0] Например, если teamsIdsSelected = ['1', '4', '7'], предложение where в конце (когда я просматриваю журнал) будет только "where challenge.team_id = 7".

На самом деле мне бы хотелось, чтобы условие ИЛИ принимало все вызовы, которые соответствуют 1, 4 или 7, как team_id. Есть ли быстрый способ сделать это без создания цикла for?

Дайте мне знать, если вам нужно больше информации о моей проблеме. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...