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 }, }, });
更高效的替代方案
可以简化操作流程,不用分三步执行:
- 创建Video时直接创建并关联Tag:
await prisma.video.create({ data: { id: 1, description: "", title: "Dancing Cats", tags: { create: { id: "funny" } // 直接创建Tag并关联 } }, });
- 创建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
相关产品推荐
相关产品推荐

