这是我的查询,用于从数据库及其关联的场所和乐队中获取表演。我真的只想知道乐队和地点的名称。 (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);
}
}
attributes
放错了位置-它不属于through
之下(顺便说一句,根据您的关联,您甚至可能不需要through
)。
尝试这样更改:
{ model: User, as: 'bands', attributes: ['name']},
您可能还会考虑使用字段别名,如下所示:
{ model: User, as: 'bands', attributes: [['name', 'band_name']]},
hth