代码之家  ›  专栏  ›  技术社区  ›  Eric Hill

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

  •  0
  • Eric Hill  · 技术社区  · 7 年前

    	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”。如何防止虚拟列出现在结果中?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Nimish Gupta    7 年前

    因此,要排除虚拟列,必须使用 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'],
            }
        ]
    });
    
    推荐文章