Prisma Client API 参考
完整的 Prisma Client API 参考。本技能为当前 Prisma 项目提供关于模型查询、过滤、关联和客户端方法的指导。
何时应用
在以下情况下参考本技能:
- 使用 Prisma Client 编写数据库查询
- 执行 CRUD 操作(创建、读取、更新、删除)
- 过滤和排序数据
- 处理关联
- 使用事务
- 配置客户端选项
按优先级排列的规则类别
| 优先级 | 类别 | 影响 | 前缀 | |----------|----------|--------|--------| | 1 | 客户端构造 | 高 | constructor | | 2 | 模型查询 | 关键 | model-queries | | 3 | 查询形状 | 高 | query-options | | 4 | 过滤 | 高 | filters | | 5 | 关联 | 高 | relations | | 6 | 事务 | 关键 | transactions | | 7 | 原始 SQL | 关键 | raw-queries | | 8 | 客户端方法 | 中 | client-methods |
快速参考
constructor-PrismaClient设置、适配器接线、日志记录和 SQL 注释器插件model-queries- CRUD 操作和批量操作query-options-select、include、omit、排序、分页filters- 标量和逻辑过滤器运算符relations- 关联读取和嵌套写入transactions- 数组和交互式事务模式raw-queries-$queryRaw和$executeRaw安全性client-methods- 生命周期方法、扩展以及用于prisma-client的satisfies模式
客户端实例化
import { PrismaClient } from '../generated/client'
import { PrismaPg } from '@prisma/adapter-pg'
const adapter = new PrismaPg({
connectionString: process.env.DATABASE_URL
})
const prisma = new PrismaClient({ adapter })
模型查询方法
| 方法 | 描述 | |--------|-------------| | findUnique() | 通过唯一字段查找一条记录 | | findUniqueOrThrow() | 查找一条记录,否则抛出错误 | | findFirst() | 查找第一条匹配记录 | | findFirstOrThrow() | 查找第一条记录,否则抛出错误 | | findMany() | 查找多条记录 | | create() | 创建新记录 | | createMany() | 创建多条记录 | | createManyAndReturn() | 创建多条记录并返回它们 | | update() | 更新一条记录 | | updateMany() | 更新多条记录 | | updateManyAndReturn() | 更新多条记录并返回它们 | | upsert() | 更新或创建记录 | | delete() | 删除一条记录 | | deleteMany() | 删除多条记录 | | count() | 统计匹配记录数量 | | aggregate() | 聚合值(求和、平均值等) | | groupBy() | 分组并聚合 |
查询选项
| 选项 | 描述 | |--------|-------------| | where | 过滤条件 | | select | 要包含的字段 | | include | 要加载的关联 | | omit | 要排除的字段 | | orderBy | 排序顺序 | | take | 限制结果数量 | | skip | 跳过结果(分页) | | cursor | 基于游标的分页 | | distinct | 仅唯一值 |
客户端方法
| 方法 | 描述 | |--------|-------------| | $connect() | 显式连接到数据库 | | $disconnect() | 断开数据库连接 | | $transaction() | 执行事务 | | $queryRaw() | 执行原始 SQL 查询 | | $executeRaw() | 执行原始 SQL 命令 | | $on() | 订阅事件 | | $extends() | 添加扩展 |
快速示例
查找记录
// Find by unique field
const user = await prisma.user.findUnique({
where: { email: 'alice@prisma.io' }
})
// Find with filter
const users = await prisma.user.findMany({
where: { role: 'ADMIN' },
orderBy: { createdAt: 'desc' },
take: 10
})
创建记录
const user = await prisma.user.create({
data: {
email: 'alice@prisma.io',
name: 'Alice',
posts: {
create: { title: 'Hello World' }
}
},
include: { posts: true }
})
更新记录
const user = await prisma.user.update({
where: { id: 1 },
data: { name: 'Alice Smith' }
})
删除记录
await prisma.user.delete({
where: { id: 1 }
})
事务
const [user, post] = await prisma.$transaction([
prisma.user.create({ data: { email: 'alice@prisma.io' } }),
prisma.post.create({ data: { title: 'Hello', authorId: 1 } })
])
规则文件
详细 API 文档:
references/constructor.md - PrismaClient constructor options
references/model-queries.md - CRUD operations
references/query-options.md - select, include, omit, where, orderBy
references/filters.md - Filter conditions and operators
references/relations.md - Relation queries and nested operations
references/transactions.md - Transaction API
references/raw-queries.md - $queryRaw, $executeRaw
references/client-methods.md - $connect, $disconnect, $on, $extends
过滤器运算符
| 运算符 | 描述 | |----------|-------------| | equals | 精确匹配 | | not | 不等于 | | in | 在数组中 | | notIn | 不在数组中 | | lt, lte | 小于 | | gt, gte | 大于 | | contains | 字符串包含 | | startsWith | 字符串以...开头 | | endsWith | 字符串以...结尾 | | mode | 大小写敏感性 |
关联过滤器
| 运算符 | 描述 | |----------|-------------| | some | 至少一条相关记录匹配 | | every | 所有相关记录匹配 | | none | 没有相关记录匹配 | | is | 相关记录匹配(一对一) | | isNot | 相关记录不匹配 |
资源
如何使用
从上表中选择类别,然后打开匹配的参考文件以获取实现细节和示例。