Конструктор запросов TypeOrm - PullRequest
0 голосов
/ 14 апреля 2020

Я не могу понять, как написать следующий оператор MySql, используя TypeOrm Query Builder

SELECT reg.id FROM farm.reg WHERE grpId = 'AB C';

этот выбор возвращает только идентификаторы, но мой построитель запросов возвращает все объекты.

В данный момент у меня есть эта функция в моем сервисе Nest Js, но мне нужно использовать «карта», и я не хочу ..

 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);

    }

Спасибо

1 Ответ

2 голосов
/ 15 апреля 2020

Попробуйте использовать 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    
}

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

...