I have an entity Article, and I would like to unbind all Tag [] from the entity when updating, how can I unbind all tags from the record without removing the tags
Article Entity:
@Entity()
export class Article implements Likeable, Viewable {
@PrimaryColumn()
id: string;
@Column()
title: string;
@Column({ type: 'text' })
content: string;
@Column('uuid')
authorId: string;
@Column('uuid', { nullable: true })
coverImageId?: string;
@Column('uuid', { nullable: true })
imageId?: string;
@Column('uuid', { nullable: true })
artId?: string;
@ManyToMany(() => Tag, { eager: true })
@JoinTable()
tags: Tag[];
@Column()
createdAt: Date;
}
Tag entity:
@Entity()
export class Tag {
@PrimaryColumn()
id: string;
@Column()
name: string;
}
update method
async update(articleId: string, body: UpdateArticle, userId: string): Promise<void> {
const article = await this.articleRepository.findOne(articleId);
.....
let tags: Tag[];
if (body.tags) {
// unlink all tags from the post
await this.tagService.saveNonExistent(body.tags);
tags = await this.tagRepository.findAllByNames(body.tags);
}
......
await this.articleRepository.save(article);
}
Is there any method for cleaning up collections?
Thanks in advance for your answer!