使用 typeORM 批量插入/更新的有效方法

Efficient way to bulk insert / update using typeORM

如何使用 TypeORM 将预先创建的对象插入到与对象的关系中? 据我所知,效率低下的是这个(多对多关系):

 const tags = await Tag.findByIds(tagIds);
 const todo = await Todo.findOne(todoId);
 todo.tags = tags;
 return await Todo.save(todo)

另外 .add() 属性 of RelationalQueryBuilder 采用单个对象或 Id,如 docs

中所述
await getConnection()
    .createQueryBuilder()
    .relation(Post, "categories")
    .of(1)
    .add(3);

那么批量插入的有效方法是什么?

我在使用从 typeGraphql 导入的 @Arg 传递字符串数组时出错,所以我解决了它,因此 typeOrmadd() 接受了 Id 数组 所以关系查询的快速和高性能示例是:

import { Resolver, Arg, Mutation } from "type-graphql";
import { Todo } from "../../entity/Todo";
import { createQueryBuilder } from "typeorm";

@Resolver()
export class BulkAssignTagsResolver {
  @Mutation(() => Todo)
  async bulkAssignTodoTag(
    @Arg("tagIds", () => [String]) tagIds: string[],
    @Arg("todoId") todoId: string
  ): Promise<Todo | undefined> {
    await createQueryBuilder("todo")
      .relation(Todo, "tags")
      .of(todoId)
      .add(tagIds);

    return Todo.findOne(todoId, { relations: ["tags"] });
  }
}