во вложенном запросе на загрузку sequelize выбирают только некоторые атрибуты - PullRequest
0 голосов
/ 24 января 2020

Вот мой запрос на выбор шоу из базы данных, а также связанное с ним место и группы. Я действительно только хочу получить названия групп и места встречи. (name - это поле в обеих этих таблицах.) Приведенный ниже код извлекает всю запись, а не только нужное мне поле.

const getAllShows = async (req, res) => {
    try {
        const shows = await Show.findAll({
            include: [
                { model: User, as: 'bands', through: { attributes: ['name'] } }, 
                { model: Venue, through: { attributes: ['name'] }}
            ],
        });
        res.status(200).send(shows); 
    }
    catch(err) {
        res.send(400);
    }
}

1 Ответ

1 голос
/ 24 января 2020

attributes неуместен - он не относится к through (кстати, в зависимости от ваших ассоциаций вам может даже не понадобиться through).

Попробуйте изменить следующим образом:

{ model: User, as: 'bands', attributes: ['name']},

Вы можете также рассмотреть псевдонимы полей, например:

{ model: User, as: 'bands', attributes: [['name', 'band_name']]},

hth

...