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

Prisma操作MongoDB:如何向关联对象列表添加元素?

解决Prisma关联更新MongoDB时的push语法错误

你遇到的问题是因为Prisma的关联更新语法和MongoDB原生驱动不同,Prisma不支持用push来关联已有记录,需要使用它提供的关联操作方法。

修正方案(适配你现有代码流程)

你已经先创建了Video和Tag,只需在update操作里用connect关联已存在的Tag即可:

// 替换原来的update代码
await prisma.video.update({
  where: {
    id: 1,
  },
  data: {
    tags: {
      connect: { id: "funny" } // 通过Tag的id关联到Video
    },
  },
});

更高效的替代方案

可以简化操作流程,不用分三步执行:

  1. 创建Video时直接创建并关联Tag:
await prisma.video.create({
  data: {
    id: 1,
    description: "",
    title: "Dancing Cats",
    tags: {
      create: { id: "funny" } // 直接创建Tag并关联
    }
  },
});
  1. 创建Tag时直接关联Video:
await prisma.video.create({
  data: { id: 1, description: "", title: "Dancing Cats" },
});

await prisma.tag.create({
  data: {
    id: "funny",
    video: { connect: { id: 1 } } // 创建Tag时直接关联到Video
  },
});

关键说明

Prisma对关联关系的更新有固定语法,常用操作包括:

  • connect:关联已存在的关联记录
  • create:创建新关联记录并绑定
  • disconnect:解除与指定记录的关联
  • createMany:批量创建并关联多个记录

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 23:15:35