return GroupMember.findOne({ where: { gid: gid, member_id: uid }, include: [ { model: User, as: 'member', attributes: ['display_name'], }, { model: Group, as: 'group', attributes: ['name'], } ] });
因此,对于“member”关系,我只请求“display\u name”列。但是,用户模型中声明了3个虚拟列,它们总是出现在查询结果中,即使我只要求“display\u name”。如何防止虚拟列出现在结果中?
因此,要排除虚拟列,必须使用 exclude 财产 attributes
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'], } ] });