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,则可以从此处访问新帖子的详细信息。。。