Fetching additional data

You can query for an entity and specify what to return in addition. For example, if you want to show a post's information with some of its comments, you would usually do 2 separate queries, but using the With/Fetch syntax you can do it in a single query.

The examples use the following prisma schema:

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 and fetch three of its comments

// find a post
post, err := client.Post.FindFirst(
  // also fetch 3 of its comments
log.Printf("post's title: %s", post.Title)
comments := post.Comments()
for _, comment := range comments {
  log.Printf("comment: %+v", comment)