我有一个查询如下:
return GroupMember.findOne({
where: { gid: gid, member_id: uid },
include: [
{
model: User,
as: 'member',
attributes: ['display_name'],
},
{
model: Group,
as: 'group',
attributes: ['name'],
}
]
});
因此,对于"成员"关系,我只请求"display_name"列。然而,User模型中声明了3个虚拟列,即使我只请求了"display_name",它们也总是出现在查询结果中。我如何防止虚拟列出现在结果中?
因此,为了排除虚拟列,您必须使用exclude
属性attributes
字段,因此新查询应该像以下
return GroupMember.findOne({
where: { gid: gid, member_id: uid },
include: [
{
model: User,
as: 'member',
attributes: { include: ['display_name'], exclude: ['virtual_columne_name1', 'virtual_columne_name2', 'virtual_columne_name3']},
},
{
model: Group,
as: 'group',
attributes: ['name'],
}
]
});