在 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
我想查询 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