文档
演练
获取

获取额外数据

您可以查询实体并指定要返回的内容。例如,如果您想显示帖子的信息及其一些评论,您通常会执行两个单独的查询,但使用 With/Fetch 语法,您可以在单个查询中完成。

这些示例使用以下 Prisma 架构

model Post {
  id        String   @id @default(cuid())
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt
  published Boolean
  title     String
  content   String?
 
  comments Comment[]
}
 
model Comment {
  id        String   @id @default(cuid())
  createdAt DateTime @default(now())
  content   String
 
  post   Post   @relation(fields: [postID], references: [id])
  postID String
}

查找帖子并获取其三个评论

// find a post
post, err := client.Post.FindFirst(
  db.Post.Title.Equals("hi"),
).With(
  // also fetch 3 of its comments
  db.Post.Comments.Fetch().Take(3),
).Exec(ctx)
check(err)
log.Printf("post's title: %s", post.Title)
 
comments := post.Comments()
for _, comment := range comments {
  log.Printf("comment: %+v", comment)
}