У меня есть отношение «многие ко многим» Post <-> Tag, и я хотел бы создать список сообщений. Каждый пост должен содержать список своих тегов-слагов. Но этот список должен быть такого типа: string []
Вот мои объекты
@Entity()
export class Post {
@PrimaryGeneratedColumn()
id: number;
@Column()
@IsDefined()
title: string;
@Column()
@IsDefined()
text: string;
@Column()
slug: string;
@ManyToMany(type => Tag)
@JoinTable()
tags: Tag[];
}
@Entity()
export class Tag {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@Column()
slug: string;
}
Код в моем сервисе
this.postsRepository.createQueryBuilder("post")
.select(["post.slug", "post.title", "tags.slug"])
.leftJoin("post.tags", "tags")
.getMany()
Результат У меня есть
[{
"title": "Post 1",
"slug": "post-1",
"tags": [{
"slug": "tag-1"
}]
}, {
"title": "Post-2",
"slug": "post-2",
"tags": [{
"slug": "tag-1"
}, {
"slug": "tag-2"
}]
}]
Результат Я хочу
[{
"title": "Post 1",
"slug": "post-1",
"tags": ["tag-1"]
}, {
"title": "Post-2",
"slug": "post-2",
"tags": ["tag-1", "tag-2"]
}]
Возможно ли это? На самом деле я хотел бы сделать то же самое, что и loadRelationIds
this.postsRepository.find({ select: ["slug", "title"], loadRelationIds: true })
, но с моими слагами.