使用 Prisma.js 按标签 ID 获取帖子
get posts by tag Id using Prisma.js
如何通过筛选获得帖子 tagId
?
我测试了这段代码,但它不起作用:
我得到了所有没有过滤的帖子!
prisma.post.findMany({
include:
{
Tags:
{
where: { TagId: tagId },
include:
{
Tag: true
}
}
},
})
schema.prisma:
model Post {
id Int @id @default(autoincrement())
title String
tags PostTags[]
}
model PostTags {
id Int @id @default(autoincrement())
post Post? @relation(fields: [postId], references: [id])
tag Tag? @relation(fields: [tagId], references: [id])
postId Int?
tagId Int?
}
model Tag {
id Int @id @default(autoincrement())
name String @unique
posts PostTags[]
}
我该如何解决这个问题?
您需要在主查询中而不是在 include
中过滤它。 include
只是为了获取关系然后在里面过滤,不会影响主查询。
您的最终查询如下所示:
await prisma.post.findMany({
where: { tags: { some: { tag: { id: 1 } } } }
})
您可以阅读有关查询关系的更多信息here。
如何通过筛选获得帖子 tagId
?
我测试了这段代码,但它不起作用: 我得到了所有没有过滤的帖子!
prisma.post.findMany({
include:
{
Tags:
{
where: { TagId: tagId },
include:
{
Tag: true
}
}
},
})
schema.prisma:
model Post {
id Int @id @default(autoincrement())
title String
tags PostTags[]
}
model PostTags {
id Int @id @default(autoincrement())
post Post? @relation(fields: [postId], references: [id])
tag Tag? @relation(fields: [tagId], references: [id])
postId Int?
tagId Int?
}
model Tag {
id Int @id @default(autoincrement())
name String @unique
posts PostTags[]
}
我该如何解决这个问题?
您需要在主查询中而不是在 include
中过滤它。 include
只是为了获取关系然后在里面过滤,不会影响主查询。
您的最终查询如下所示:
await prisma.post.findMany({
where: { tags: { some: { tag: { id: 1 } } } }
})
您可以阅读有关查询关系的更多信息here。