mcpField
P
prisma-client-api

prisma-client-api

github.com/prisma数据与数据库76397.9k 次安装1 天前更新
代码仓库

关于 prisma-client-api

面向当前 Prisma 项目开发者的 Prisma Client 参考技能,按主题整理查询、过滤、关系、事务、原始 SQL 和客户端方法的指导。

主要功能

  1. 01CRUD 与批量查询指导
  2. 02过滤、排序与分页
  3. 03关系读取和嵌套写入
  4. 04事务模式参考
  5. 05原始 SQL 与客户端方法参考

适用场景

  1. 01编写 Prisma Client 模型查询
  2. 02筛选并调整查询结果
  3. 03处理相关记录
  4. 04实现数据库事务

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/prisma/skills --skill prisma-client-api

安装后在 Claude Code 中输入/prisma-client-api确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
client-methods.md
constructor.md
filters.md
model-queries.md
query-options.md
raw-queries.md
relations.md
transactions.md

详细介绍

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: '[email protected]' }
})

// 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: '[email protected]',
    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: '[email protected]' } }),
  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相关记录不匹配

资源

使用方法

从上表中选择类别,然后打开对应的参考文件,查看实现细节和示例。

评论

支持 Markdown