0

免责声明,我仍然是 GraphQL 的菜鸟。

为长篇文章道歉,但我需要提供尽可能多的信息来解释我的问题。

我目前正在尝试使用 GraphQL 查询我的Neo4j,然后使用 ReTool 将数据制成表格

我设法完成了大部分工作,但是当我查询数据库时,我也得到了空值。

您可以访问下面的沙箱来测试自己的可能解决方案。 https://codesandbox.io/s/great-marco-coy3k

我正在使用的查询如下:

query {
  people{
    child{
      firstname{
        name
      }
      middlename{
        name
      }
      lastname{
        name
      }
      phone{
        name
      }
      email{
        name
      }
      dob{
        name
      }
      eid{
        name
      }
    }
  }
}

回复

如您所见,我得到了空值和非空值的混合。

我想找回的是其中有数据并忽略空值的孩子。原因是当我尝试填充我的表时,空值也会出现在那里。

我需要强调一个事实,即即使一个或多个对象为空,我仍然需要检索“孩子”,如下图所示:

中间名是 null 完全没问题

在做一些研究时,我注意到其他人也遇到了同样的问题(示例),但大多数回复说这个问题没有直接的解决方案,很多人谈到调整解析器,我不知道该怎么做。解析器文件已经由 Neo4j Sandbox 自动设置,我不知道如何调整它。

要提供有关问题根本原因的更多信息,您可以查看下面的 Neo4j 架构:

Neo4j 架构

如您所见,具有 MASTER_OF 和 CHILD_OF 关系的两人节点是相似的。当我查询时, people{child{firstname name}...} 我得到具有 IN CHILD_OF 关系的节点的值和具有 IN MASTER_OF 关系的节点的 null 值。

4

1 回答 1

0

据我了解,您不确定每个值将返回什么 null :它可能是也可能不是 null。在这种情况下,不可能将架构调整为仅包含非空值。您必须在前端处理它并在那里完全排除空值。

于 2021-12-28T01:13:59.430 回答