【发布时间】:2020-12-31 16:28:15
【问题描述】:
我有一个 graphql 查询,它通过 id 提取业务,然后检索与该业务相关的所有评论。
query Business($id: ID!) {
business(id: $id) {
_id
name
desc
reviews {
_id
text
createdAt
published
}
}
我面临的挑战是我只想提取已发布的评论。我能够通过使用字段解析器来实现这一点。但是我不太确定这是否是最好的方法,因为查询已经完成了提取所有评论的繁重工作,并且解析器仅过滤已发布的评论。
const Business = {
reviews: (parent, args, ctx, info) => parent.reviews.filter(rev => rev.published)
}
下面是我的棱镜查询解析器:
async business(parent, args, { prisma, request }, info) {
let opArgs = {}
opArgs.where = { _id: args.id }
let post = null
try {
post = await prisma.query.business(opArgs, info)
console.log(post)
} catch (err) {
throw new Error(err.message)
}
return post
},
我的目标是在根目录上过滤已发布的评论。有没有更好的方法来解决这个问题。
请帮忙
【问题讨论】:
标签: graphql apollo-client apollo-server prisma