graphql - 如何使用从 Gatsby 中的 Contentful 获取的值过滤从 Contentful 获取的数据?
问题描述
我正在尝试使用过滤器从 Contentful 中获取数据,该过滤器的eq
运算符也从 Contentful 中获取。在我当前的场景中,如下面的代码所示,我正在尝试使用从in 中allContentfulPost
获取的值过滤从中获取的内容。label
contentfulCategory
有什么想法我可以这样做吗?我尝试$label
在allContentfulPost
过滤器eq
运算符中使用,但这没有用。
export const pageQuery = graphql`
query CategoryBySlug($slug: String!) {
contentfulCategory (slug: { eq: $slug }) {
slug
label
}
allContentfulPost (filter: { categories: { elemMatch: { label: { eq: ????? } } } }) {
edges {
node {
title
slug
featured
image {
fluid {
src
}
}
}
}
}
}
`
解决方案
内容丰富的 DevRel 在这里。
您可以尝试以下查询吗?:)
export const pageQuery = graphql`
query CategoryBySlug($slug: String!) {
contentfulCategory (slug: { eq: $slug }) {
slug
label
}
allContentfulPost (filter: {
categories: {
elemMatch: {
slug: {
# reuse the $slug argument to filter the related articles
eq: $slug
}
}
}
}) {
edges {
node {
title
slug
featured
image {
fluid {
src
}
}
}
}
}
}
`
您也可以过滤$slug
in allContentfulPost
。使用上面的查询,您请求两种不同的资源:
$slug
与as匹配的一类contentfulCategory
链接到与正确匹配的类别的
$slug
帖子allContentfulPost
推荐阅读
- java - 阅读 Google Fit 自动生成的活动
- java - 是否可以使用java比较数据库表记录的值?
- elasticsearch - 弹性 - 防止更新文档
- macos - Mac docker start 致命错误:子进程之一失败:com.docker.driver.amd64-linux -addr fd:3 -debug (pid: 1375)
- javascript - 为什么在这种情况下 catch 不返回错误?
- java - 有没有更好(更安全)的方法来获取参数化类型的类?
- python - SQL - 哪个索引将加快 COUNT() 查询
- asp.net-core - 使用 Azure Redis 缓存时如何解决超时等待响应问题?
- html - Rvest html_nodes 无法选择 div.class
- docker - 如何确保我的 docker 镜像/容器在 100 年后仍然可以工作?