Prisma+MongoDB:多对多嵌套创建仅填充关系单侧问题
问题:Prisma MongoDB多对多关联中,Post关联Photo后Photo的postIds未同步更新,但计数正确
业务场景与Schema定义
业务需求:User可创建多张Photo并关联至单个Post,其他用户可转发他人照片,因此Photo与Post需建立多对多关系。对应的Prisma Schema如下:
model User { id String @id @default(auto()) @map("_id") @db.ObjectId photos Photo[] posts Post[] ... } model Photo { id String @id @default(auto()) @map("_id") @db.ObjectId user User @relation(fields: [userId], references: [id]) userId String @db.ObjectId posts Post[] @relation(fields: [postIds], references: [id]) postIds String[] @db.ObjectId ... } model Post { id String @id @default(auto()) @map("_id") @db.ObjectId poster User @relation(fields: [posterId], references: [id]) posterId String @db.ObjectId photos Photo[] @relation(fields: [photoIds], references: [id]) photoIds String[] @db.ObjectId ... }
问题操作
目前能正常创建Photo和Post,但执行以下代码创建关联已有照片的新Post时,Post的photoIds能正确填充,但Photo的postIds仍为空:
return await prisma.user.update({ where: {id}, data: { posts: { create: { photoIds, }, } } })
异常现象
虽然Photo的postIds字段为空,但查询Photo关联的Post计数时结果是正确的:
await prisma.user.findUnique({where: { id }}).photos({ where: { id: photoId }, select: { ... _count: { select: { posts: true, } }, } })
已反复查阅Prisma MongoDB多对多相关文档,仍未找到原因,求解决方法。
内容的提问来源于stack exchange,提问作者brick wad
相关产品推荐
相关产品推荐

