全书目录

第二十二篇:Prisma 完全指南 —— 数据翻译官事务所宇宙

第八章:Relation Query —— 沿着档案关系网去查

1 分钟 160 字 第 407 / 962 个阅读单元

Prisma 的 relation 不是摆设。

它的价值在于:你可以顺着关系去查,而不是自己手搓一堆 join 心智。

#1. 读取文章,并带出作者
ts
const posts = await prisma.post.findMany({
  where: { published: true },
  select: {
    id: true,
    title: true,
    author: {
      select: {
        id: true,
        email: true,
        name: true,
      },
    },
  },
});
#2. 按关联对象过滤
ts
const posts = await prisma.post.findMany({
  where: {
    author: {
      email: { contains: "city.dev" },
    },
  },
});
#3. connect:把现有档案挂接起来
ts
await prisma.post.create({
  data: {
    title: "被挂到现有作者名下的文章",
    author: {
      connect: { email: "lin@city.dev" },
    },
  },
});
#4. disconnect:解除挂接
ts
await prisma.post.update({
  where: { id: 1 },
  data: {
    author: {
      disconnect: true,
    },
  },
});

你会发现 Prisma 的 relation 心智很像“中介手续”:

text
create    = 新建档案
connect   = 挂到已有档案上
disconnect= 解除关系
include   = 查主档时顺便带副档