繁体   English   中英

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

[英]Sequelize: How can I prevent virtual columns from included relation from appearing in query result?

我有一个查询,看起来像这样:

  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”,它们也始终出现在查询结果中。如何防止虚拟列出现在结果中?

因此,要排除虚拟列,您必须在attributes字段中使用exclude属性,因此新查询应如下所示

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM