Prisma Client API 的 Model Queries 是用于对 Prisma 模型执行 CRUD 操作的功能集合。以下按用途、主要能力、使用方式、适用场景与限制进行整理。
一、用途 Model Queries 用于对 Prisma 模型进行数据的读取、创建、更新、删除和聚合统计,即面向模型的 CRUD 操作。
二、主要能力
- 读取操作
- findUnique:按唯一字段查找单条记录,可用于 id、email 等唯一字段,也支持复合唯一键(如模型含 @@unique([firstName, lastName]) 时使用 firstName_lastName)。
- findUniqueOrThrow:与 findUnique 相同,但未找到时抛出 PrismaClientKnownRequestError。
- findFirst:查找第一条匹配记录,可配合 where 与 orderBy。
- findFirstOrThrow:与 findFirst 相同,但未找到时抛出。
- findMany:查找多条记录,支持 where、orderBy、take、skip。
- 创建操作
- create:创建单条记录,可通过 include 处理关联数据(如同时创建 posts)。
- createMany:创建多条记录,支持 skipDuplicates 以跳过具有重复唯一字段的记录,返回 { count: number }。
- createManyAndReturn:创建多条并返回创建的记录数组。
- 更新操作
- update:更新单条记录。支持原子操作,如 increment、decrement、multiply、divide、set。
- updateMany:更新多条记录,返回 { count: number }。
- updateManyAndReturn:更新多条并返回更新后的记录数组。
- upsert:存在则更新、不存在则创建,通过 where、update、create 指定。
- 删除操作
- delete:删除单条记录,返回被删除的记录。
- deleteMany:删除多条记录,返回 { count: number };传入空对象可删除全部。
- 聚合操作
- 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 进行数据读写、条件查询、分页与排序、关联创建、原子数值更新、批量创建/更新/删除、删除全部,以及计数、聚合与分组统计等场景。
六、限制 资料中未提供关于具体限制的说明,例如数据库平台差异、并发行为、性能上限或事务要求等,暂未提供。