You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Next.js中使用Prisma根据含唯一名称的数组批量更新用户记录

嘿,这就帮你搞定批量更新的问题!

首先直接给你答案:要匹配数组里的多个用户名,你需要用Prisma的in操作符,这个写法在PostgreSQL下完全没问题,因为PostgreSQL原生就支持IN查询来匹配多个值。

完整的可运行代码示例

const arr = ['Joe', 'Mark'];

const update = await prisma.user.updateMany({
  where: {
    name: { in: arr } // 核心就是这里的in操作符,把数组传进去就行
  },
  data: {
    notifications: { push: "Hello" }
  }
});

再给你拆解下关键点:

  • in操作符的作用:Prisma会把这个条件转换成SQL里的WHERE name IN ('Joe', 'Mark'),PostgreSQL对这种语法支持得很好,不用担心兼容性问题。
  • push更新的前提:只要你在Prisma Schema里把notifications定义成数组类型(比如String[]),Prisma的push操作就会自动对应PostgreSQL的数组追加逻辑,帮你把'Hello'加到每个匹配用户的notifications数组里。

顺便提下Schema的正确配置(避免踩坑)

确保你的user模型里notifications字段是数组类型,比如这样:

model User {
  id            Int      @id @default(autoincrement())
  name          String   @unique
  notifications String[] // 对应PostgreSQL的text[]数组类型
  // 其他字段按需添加...
}

这样运行代码后,Joe和Mark的notifications字段都会多一条'Hello'啦~

内容的提问来源于stack exchange,提问作者jack07Code

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 01:07:28