SuperAPI AI 工具集

prisma-client-api-model-queries

编程与开发

查看项目

更新于 10-16 03:54

技能介绍

Prisma Client API 的 Model Queries 是用于对 Prisma 模型执行 CRUD 操作的功能集合。以下按用途、主要能力、使用方式、适用场景与限制进行整理。

一、用途 Model Queries 用于对 Prisma 模型进行数据的读取、创建、更新、删除和聚合统计,即面向模型的 CRUD 操作。

二、主要能力

  1. 读取操作
  • findUnique:按唯一字段查找单条记录,可用于 id、email 等唯一字段,也支持复合唯一键(如模型含 @@unique([firstName, lastName]) 时使用 firstName_lastName)。
  • findUniqueOrThrow:与 findUnique 相同,但未找到时抛出 PrismaClientKnownRequestError。
  • findFirst:查找第一条匹配记录,可配合 where 与 orderBy。
  • findFirstOrThrow:与 findFirst 相同,但未找到时抛出。
  • findMany:查找多条记录,支持 where、orderBy、take、skip。
  1. 创建操作
  • create:创建单条记录,可通过 include 处理关联数据(如同时创建 posts)。
  • createMany:创建多条记录,支持 skipDuplicates 以跳过具有重复唯一字段的记录,返回 { count: number }。
  • createManyAndReturn:创建多条并返回创建的记录数组。
  1. 更新操作
  • update:更新单条记录。支持原子操作,如 increment、decrement、multiply、divide、set。
  • updateMany:更新多条记录,返回 { count: number }。
  • updateManyAndReturn:更新多条并返回更新后的记录数组。
  • upsert:存在则更新、不存在则创建,通过 where、update、create 指定。
  1. 删除操作
  • delete:删除单条记录,返回被删除的记录。
  • deleteMany:删除多条记录,返回 { count: number };传入空对象可删除全部。
  1. 聚合操作
  • count:统计记录数量,支持 where。
  • aggregate:聚合统计,支持 _avg、_sum、_min、_max、_count。
  • groupBy:分组统计,支持 by、_count、_avg 以及 having 条件。

三、使用方式 通过 prisma.<model>.<method> 的形式调用,例如 prisma.user.findUnique({ where: { id: 1 } })、prisma.user.create({ data: { ... } })、prisma.post.aggregate({ _avg: { views: true }, ... }) 等。各方法可传入 where、orderBy、take、skip、include、data、update、create 等参数。

四、返回类型

  • findUnique:Record | null
  • findUniqueOrThrow:Record(未找到则抛出)
  • findFirst:Record | null
  • findFirstOrThrow:Record(未找到则抛出)
  • findMany:Record[]
  • create:Record
  • createMany:{ count: number }
  • createManyAndReturn:Record[]
  • update:Record
  • updateMany:{ count: number }
  • delete:Record
  • deleteMany:{ count: number }
  • count:number
  • aggregate:Aggregate result
  • groupBy:Group result[]

五、适用场景 适用于使用 Prisma 进行数据读写、条件查询、分页与排序、关联创建、原子数值更新、批量创建/更新/删除、删除全部,以及计数、聚合与分组统计等场景。

六、限制 资料中未提供关于具体限制的说明,例如数据库平台差异、并发行为、性能上限或事务要求等,暂未提供。