Javascript 使用prisma,如何从嵌套写入中访问新创建的记录(先更新,然后在中创建)
使用,我有一个关于访问从嵌套写入中新创建的记录的问题(首先更新,然后在中创建) 我将遵循上面的示例 我特别关注数据模型中的以下两项: 注意,为了回答这个问题,我稍微修改了这个示例,在Javascript 使用prisma,如何从嵌套写入中访问新创建的记录(先更新,然后在中创建),javascript,prisma,Javascript,Prisma,使用,我有一个关于访问从嵌套写入中新创建的记录的问题(首先更新,然后在中创建) 我将遵循上面的示例 我特别关注数据模型中的以下两项: 注意,为了回答这个问题,我稍微修改了这个示例,在用户中添加了一个计数器 model User { id Int @id @default(autoincrement()) email String @unique posts Post[] counter Int } model Post { id
用户
中添加了一个计数器
model User {
id Int @id @default(autoincrement())
email String @unique
posts Post[]
counter Int
}
model Post {
id Int @id @default(autoincrement())
title String
author User? @relation(fields: [authorId], references: [id])
authorId Int?
}
现在,假设您想创建一个新的Post
,并将其连接到用户
,同时,您还想增加计数器
model User {
id Int @id @default(autoincrement())
email String @unique
posts Post[]
counter Int
}
model Post {
id Int @id @default(autoincrement())
title String
author User? @relation(fields: [authorId], references: [id])
authorId Int?
}
在阅读之后,我的假设是您需要更新现有的用户
,并在其中创建一个新的Post
记录
i、 e
我的问题是。在上述场景中,如何访问查询返回中新创建的Post
特别是,假设您想要获取新的Post
的id
据我所知,返回的用户
对象可能包括所有相关帖子的数组
,即如果您将其添加到更新
查询中
include: {
posts: true,
}
但我还不知道如何使用Prisma获得您刚刚创建的个人
帖子,作为更新查询的一部分。我找到了一种实现这一点的方法
它使用
基本上,不要尝试使用嵌套写入,该写入从User
上的更新开始,并包含Post
上的嵌套create
我将这两个操作拆分为单独的变量,并使用prisma.$transaction()
将它们一起运行,如下所示
const updateUser=prisma.user.update({
其中:{电子邮件:'alice@prisma.io' },
数据:{
//增加此用户的计数器
柜台:{
增量:1,
},
},
});
const createPost=prisma.post.create({
数据:{
//为此用户创建新帖子
标题:“你好,世界”,
作者:{
连接:{
电邮:'alice@prisma.io',
},
},
},
});
常量[updateUserResult,createPostResult]=等待prisma.$transaction([updateUser,createPost]);
//如果createPostResult,则可以从此处访问新帖子的详细信息。。。