在 Prisma 中查询多对多关系

Query many-to-many relationship in Prisma

我想查询 prisma 中的多对多关系,例如“select 所有类别 ID 等于 'abc...' 的帖子”。

这看起来相当简单,但即使花了 2 小时阅读 Prisma docs on relational queries,我也无法弄明白。

model Category {
  id               String    @id @default(cuid())
  name             String
  post             Post[]
}

model Post {
  id               String    @id @default(cuid())
  body             String
  category         Category[]
}
const posts = await prisma.post.findMany({
      select: { 
        category: {
          where: {id: "abc123"}
        }},
    });

这个 returns 一个包含与帖子数量一样多的类别对象的数组。

这将 return 所有类别为 id abc123 的帖子。请注意,帖子可能包含 id abc123.

以外的类别
const posts = await prisma.post.findMany({
    where: {
        category: {
            some: {
                id: 'abc123',
            },
        },
    },
});

some:Returns 一条或多条(“一些”)相关记录符合过滤条件的所有记录。

https://www.prisma.io/docs/reference/api-reference/prisma-client-reference#some