SuperAPI AI 工具集

prisma-client-api-relations

编程与开发

查看项目

更新于 10-16 04:07

技能介绍

用途

Prisma Client 关联(Relations)功能用于在 Prisma Client API 中查询和修改相互关联的数据记录。当需要在一次操作中加载、创建、更新、断开或删除关联记录时,可参考本资料。

主要能力

加载关联记录(Include)

通过 include 一次性加载关联记录,例如同时加载用户的 posts 和 profile。

支持的进阶形式:

  • 过滤式 include:在 include 内使用 where、orderBy、take 和 select 对加载的关联记录进行过滤、排序、分页与字段选择。
  • 嵌套 include:对关联记录继续 include 更深层的关联,例如加载 posts 下 comments 及其 author。

选择关联字段(Select)

通过 select 在查询指定字段的同时选择关联记录,例如选择 name 以及 posts 的 title。

嵌套写入(Nested Writes)

  • 创建时同时创建关联记录:在 create 的 data 中通过 posts.create 和 profile.create 一次性创建。
  • createOrConnect:查询已存在则连接,不存在则创建。
  • connect:连接已存在的关联记录。
  • 外键简写:可直接传入 authorId 等外键字段,而无需使用 connect。

更新关联记录

  • update:更新指定的单条关联记录。
  • updateMany:按条件批量更新关联记录。
  • upsert:关联记录存在则更新,不存在则创建。

断开与删除关联

  • disconnect:断开关联(一对一可选关系可传 true,多对多可传入对象数组指定记录)。
  • delete:删除指定关联记录。
  • deleteMany:按条件批量删除关联记录。
  • set:以给定集合替换全部关联记录。

关联过滤器(Relation Filters)

  • some:至少有一条关联记录匹配。
  • every:全部关联记录匹配。
  • none:没有任何关联记录匹配。
  • is / isNot:用于一对一关系的匹配判断。

关联计数(Count Relations)

通过 select 中的 _count 统计关联记录数量,例如统计用户的 posts 与 followers 数量。

支持带条件过滤的计数:在 _count.select 内的关联字段上添加 where 条件,例如只统计已发布的 posts 数量。

使用方式

资料中给出的代码示例均基于 Prisma Client 的 JavaScript/TypeScript 调用风格,如 prisma.user.findUnique、prisma.user.create、prisma.user.update、prisma.user.findMany 等,通过 inclide、select、data 和 where 参数控制关联数据的加载与写入。文中未提供安装命令、URL 之外的接入步骤或环境配置说明。

适用场景

适用于需要在 Prisma 中进行以下操作的开发场景:关系型数据的关联读取(含过滤、排序、分页、嵌套加载)、关联数据的一次性嵌套创建、关联记录的更新与批量更新、关联的断开、删除与整体替换,以及基于关联条件的查询过滤与关联数量统计。

限制

资料仅提供功能参考与代码示例,未提供版本要求、性能说明、平台限制或收费信息;文中涉及的具体字段名(如 published、email、country 等)属于示例,实际使用需按自身数据模型调整。