更新时间:2021-11-25 22:54:17
我认为使用TypeORM本身不可能做到这一点,但是您可以通过以下方式使用map()
函数来实现:
const categories: string[] = query.execute().map((book) => book.category_name );
const book = {id: bookArray[0].book_id, name: bookArray[0].book_name, categories};
//OUTPUT:
{
id: 1,
name: 'Lorem Ipsum',
categories: [ 'non-fiction', 'documentary' ]
}
这不是干净利落的做法,但由于您是按ID请求一本书,因此您将确保book_id
和book_name
属性在每个数组对象中始终相同。
TypeORM还建议使用getMany()
或getOne()
而不是执行查询:
const books: Book[] = await this.bookRepository
.createQueryBuilder('book')
.leftJoinAndSelect(BookCategory, 'category', 'book.id = category.bookId')
.getMany();