this.sampleRepo.find( { order: { id: "DESC" }, select: ['id','group'] } ); esto devuelve la id y el group como se esperaba, pero ¿cómo devolver la id como user_id ? y también cómo seleccionar valores distintos del grupo?
Simplemente agregue un alias en su cadena seleccionada, por ejemplo:
select: ['id AS user_id','group AS user_group']Si la opción anterior no funcionó, debería funcionar en queryBuilder:
this.sampleRepo .createQueryBuilder('user') .orderBy('user.id', 'DESC') .select(['id AS user_id','group AS user_group']) .getRawMany() // or .getMany()Hice algo como lo necesita con uno de mis ejemplos (el último aquí) pero escribí esto (actualización arreglada con getRawMany y distinto) :
getMany(): Promise<UserEntity[]> { return this.userRepo.createQueryBuilder('user') .where({ username: 'breckhouse0' }) .select(['DISTINCT (user.username) AS user_name', 'user.id AS user_id']) .getRawMany(); }y esto funciona como esperas -resultados
Hice una gambiarra :
var qb = this.siteSurveyRepository .createQueryBuilder('sites') .leftJoinAndSelect('sites.responsavel', 'responsavel') .leftJoinAndSelect('sites.endereco', 'endereco') .leftJoinAndSelect('sites.localizacao', 'localizacao') .leftJoinAndSelect('sites.fotos', 'fotos') .leftJoin('sites.contato', 'contato') .leftJoin('contato.empresa', 'empresa') .select([ 'sites.id', 'sites.nome', 'sites.esfera', 'sites.poder', 'sites.dataCriacao', 'sites.dataCriacaoLocal', 'responsavel', 'endereco', 'localizacao', 'fotos.id', 'fotos.idSurvey', 'fotos.label', 'fotos.src', 'contato.id', 'contato.nome', 'contato.email', 'contato.telefone', 'empresa' ]) const all = qb.orderBy('sites.dataCriacao', 'ASC').getMany(); const result = JSON.stringify(all).replace('dataCriacao', 'data_criacao').replace('dataCriacaoLocal', 'data_criacao_local'); const data = JSON.parse(result); return response.status(201).json(data);