Skip to main content

prisma-client-api-relations

Relation Queries. Reference when using this Prisma feature.

跳到安装

来源信息

仓库
prisma/cursor-plugin
最近来源活动
2026年2月6日 14:17
检测到的 SKILL.md 语言
英语
星标
10
分支
1

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

文件资源管理器
2 个文件

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
prisma-client-api-relations
description
Relation Queries. Reference when using this Prisma feature.
license
MIT
metadata
{"author":"prisma","version":"7.0.0"}
# Relation Queries Query and modify related records. ## Include Relations Load related records: ```typescript const user = await prisma.user.findUnique({ where: { id: 1 }, include: { posts: true, profile: true } }) ``` ### Filtered include ```typescript const user = await prisma.user.findUnique({ where: { id: 1 }, include: { posts: { where: { published: true }, orderBy: { createdAt: 'desc' }, take: 5, select: { id: true, title: true } } } }) ``` ### Nested include ```typescript const user = await prisma.user.findUnique({ where: { id: 1 }, include: { posts: { include: { comments: { include: { author: true } } } } } }) ``` ## Select Relations ```typescript const user = await prisma.user.findUnique({ where: { id: 1 }, select: { name: true, posts: { select: { title: true } } } }) ``` ## Nested Writes ### Create with relations ```typescript const user = await prisma.user.create({ data: { email: 'alice@prisma.io', posts: { create: [ { title: 'Post 1' }, { title: 'Post 2' } ] }, profile: { create: { bio: 'Hello!' } } } }) ``` ### Create or connect ```typescript const post = await prisma.post.create({ data: { title: 'New Post', author: { connectOrCreate: { where: { email: 'alice@prisma.io' }, create: { email: 'alice@prisma.io', name: 'Alice' } } } } }) ``` ### Connect existing ```typescript const post = await prisma.post.create({ data: { title: 'New Post', author: { connect: { id: 1 } } } }) // Shorthand for foreign key const post = await prisma.post.create({ data: { title: 'New Post', authorId: 1 } }) ``` ## Update Relations ### Update related records ```typescript const user = await prisma.user.update({ where: { id: 1 }, data: { posts: { update: { where: { id: 1 }, data: { title: 'Updated Title' } } } } }) ``` ### Update many related ```typescript const user = await prisma.user.update({ where: { id: 1 }, data: { posts: { updateMany: { where: { published: false }, data: { published: true } } } } }) ``` ### Upsert related ```typescript const user = await prisma.user.update({ where: { id: 1 }, data: { profile: { upsert: { create: { bio: 'New bio' }, update: { bio: 'Updated bio' } } } } }) ``` ### Disconnect ```typescript // 1-to-1 optional const user = await prisma.user.update({ where: { id: 1 }, data: { profile: { disconnect: true } } }) // Many-to-many const post = await prisma.post.update({ where: { id: 1 }, data: { tags: { disconnect: [{ id: 1 }, { id: 2 }] } } }) ``` ### Delete related ```typescript const user = await prisma.user.update({ where: { id: 1 }, data: { posts: { delete: { id: 1 } } } }) // Delete many const user = await prisma.user.update({ where: { id: 1 }, data: { posts: { deleteMany: { published: false } } } }) ``` ### Set (replace all) ```typescript // Replace all related records const post = await prisma.post.update({ where: { id: 1 }, data: { tags: { set: [{ id: 1 }, { id: 2 }] } } }) ``` ## Relation Filters ### some At least one matches: ```typescript const users = await prisma.user.findMany({ where: { posts: { some: { published: true } } } }) ``` ### every All match: ```typescript const users = await prisma.user.findMany({ where: { posts: { every: { published: true } } } }) ``` ### none None match: ```typescript const users = await prisma.user.findMany({ where: { posts: { none: { published: true } } } }) ``` ### is / isNot (1-to-1) ```typescript const users = await prisma.user.findMany({ where: { profile: { is: { country: 'USA' } } } }) ``` ## Count Relations ```typescript const users = await prisma.user.findMany({ select: { name: true, _count: { select: { posts: true, followers: true } } } }) // { name: 'Alice', _count: { posts: 5, followers: 100 } } ``` ### Filter counted relations ```typescript const users = await prisma.user.findMany({ select: { name: true, _count: { select: { posts: { where: { published: true } } } } } }) ```
在 GitHub 查看