文档
演练
排序

排序

以下示例使用以下 prisma 模式

model Post {
  id        String   @id @default(cuid())
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt
  published Boolean
  title     String
  content   String?
 
  // add an index to be able to order by created_at
  @@index([createdAt])
}

按 ID 排序

以下示例等同于按 ID 升序排序的默认行为

posts, err := client.Post.FindMany().OrderBy(
  db.Post.ID.Order(db.SortOrderAsc),
).Exec(ctx)

您可以按任何字段排序,方向可以是升序或降序,但建议在排序字段上使用索引。

按最新创建日期排序

posts, err := client.Post.FindMany().OrderBy(
  db.Post.CreatedAt.Order(db.SortOrderDesc),
).Exec(ctx)

与分页结合使用

posts, err := client.
  Post.
  FindMany().
  Take(5).
  Cursor(db.Post.ID.Cursor("abc")).
  OrderBy(
    db.Post.CreatedAt.Order(db.SortOrderDesc),
  ).Exec(ctx)