NodeJS 如何在Prisma ORM中实现.upsertMany()?

cunj1qz1  于 2023-04-11  发布在  Node.js
关注(0)|答案(2)|浏览(200)

Prisma ORM实现了update或create upsert()方法和一组批量请求。
但是没有.upsertMany()这样的东西,即批量“创建或更新现有记录”。
使用Prisma ORM实现这种方法的最佳方式是什么?

nuypyhwy

nuypyhwy1#

Prisma本身不支持upsertMany
有一个Feature Request来提供upsertMany方法。
到目前为止,最好的方法是循环数据,并在循环中调用upsert沿着使用$transaction
示例:

const collection = await prisma.$transaction(
    userData.map(cur =>
      prisma.cur.upsert({
        where: { id: cur.id },
        update: {},
        create: { id: cur.id },
      })
    )
  )

这里有一个$transaction API的参考,应该会有帮助。

zbwhf8kr

zbwhf8kr2#

我确实想知道,如果不使用$transaction API并在数据上循环,那么检查DB是否应该插入或更新每条记录,然后使用createMany沿着updateMany,这会更有性能。

相关问题