Documentation
Walkthrough
Pagination

Pagination

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
}

Return the first 5 rows

selected, err := client.
    Post.
    FindMany().
    Take(5).
    Exec(ctx)

Return the first 5 rows and skip 2 rows

selected, err := client.
    Post.
    FindMany().
    Take(5).
    Skip(2).
    Exec(ctx)

Cursor-based pagination

Instead of using Skip, you can also provide a cursor:

selected, err := client.
    Post.
    FindMany().
    Take(5).
    Skip(2).
    Cursor(db.Post.ID.Cursor("abc")).
    Exec(ctx)

Also check out the order by docs to understand how you can combine cursor-based pagination with order by.