在嵌套的紧急加载序列查询中,仅获取某些属性

问题描述 投票:0回答:1

这是我的查询,用于从数据库及其关联的场所和乐队中获取表演。我真的只想知道乐队和地点的名称。 (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);
    }
}
javascript mysql node.js sequelize.js eager-loading
1个回答
0
投票

attributes放错了位置-它不属于through之下(顺便说一句,根据您的关联,您甚至可能不需要through)。

尝试这样更改:

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

您可能还会考虑使用字段别名,如下所示:

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

hth

© www.soinside.com 2019 - 2024. All rights reserved.