Sequelize:如何防止包含关系的虚拟列出现在查询结果中



我有一个查询如下:

	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'],
}
]
});

最新更新