TypeOrm 查询构建器

A B*_*A B 0 typeorm nestjs

我不知道如何使用 TypeOrm Query Builder 编写以下 MySql 语句

SELECT reg.id FROM farm.reg WHERE grpId = 'ABC';

此选择仅返回 ID,但我的查询构建器正在返回整个对象。

在这一刻,我的 NestJs 服务中有这个功能,但我需要使用“地图”,我不想......

 async getGrupIds(entity: string, grpId: string) {

        console.log(entity, grpId);
        const ids = await getRepository(reg)
        .createQueryBuilder(entity)
        .where('reg.grpId = :grpId', {grpId: grpId})
        .getMany();
        console.log(ids);
        return ids.map(o => o.id);

    }
Run Code Online (Sandbox Code Playgroud)

谢谢

小智 6

如果要选择实体的某些指定字段,请尝试使用 getRawMany() 而不是 getMany():

//I suppose you have a *grpId* variable in your function 

const ids = await getRepository(Reg)
    .createQueryBuilder('reg')
    .select('reg.grpId', 'id')
    .where('reg.grpId = :grpId', { grpId } )
    .getRawMany();
    console.log(ids);
    return ids    
}
Run Code Online (Sandbox Code Playgroud)

https://github.com/typeorm/typeorm/blob/master/docs/select-query-builder.md#getting-values-using-querybuilder