首页 > 解决方案 > Gatsbyjs 中的 GraphQL - 仅返回包含特定字段的数据

问题描述

我在 GatsbyJs 框架中使用 GraphQL。

我有多个包含 JSON 数据的文件。数据结构与此类似:

{
 ...,
 "sections" / "menuSections"
}

最后一个字段可以是每个文件中的“sections”或“menuSections”。我当前的 graphQL 查询如下所示:

{
  allDataJson {
    nodes {
      menuSections
    }
  }
}

此查询返回正确的“menuSections”,但是,没有“menuSections”的数据文件将返回为null. 如何让 GraphQL 仅从包含“menuSections”的文件中返回数据,即如何返回存在“menuSections”的数据。我正在寻找像$exists.

标签: jsongraphqlgatsbygraphql-js

解决方案


看起来GraphQL$exists中没有运算符。相反,您可以做的是在解析器中添加一些逻辑来检查字段是否不为空。我发现了两个与您相关的旧问题:GraphQL 查询并检查返回的数据GraphQL 查询:如果不为空,则仅包含字段


推荐阅读