如何更新`info` graphql中的SelectionSet?
Posted
技术标签:
【中文标题】如何更新`info` graphql中的SelectionSet?【英文标题】:How to update SelectionSet in `info` graphql? 【发布时间】:2021-09-19 17:04:16 【问题描述】:上下文
我在 python (graphql-core-3) 中使用 graphql,并且我有一个如下所示的 GraphQL 查询。
query One
library(id: "library_1")
name
book
title
__typename
__typename
当我调查info
对象info.field_nodes[0].selection_set.selections
时,我得到了FieldNodes
的选择集,看起来像这样:
<class 'graphql.language.ast.SelectionSetNode'>
<class 'graphql.pyutils.frozen_list.FrozenList'> [FieldNode at 45:49, FieldNode at 54:95, FieldNode at 100:110]
# FieldNode at 45:49
name
# FieldNode at 54:95
book
title
__typename
# FieldNode at 100:110
__typename
问题
在我的第二个查询集中,我添加了results
字段来包装我的数据。
query All
allLibrary
results
name
book
title
__typename
__typename
__typename
不幸的是,这会导致一个问题,因为查询集是从allLibrary
级别解析的,而不是像第一个示例中的library
。这种结构的后果是info.field_nodes[0].selection_set.selections
错误地解析了字段。跳过,我感兴趣的所有领域(name
,book
,__typename
)。
<class 'graphql.language.ast.SelectionSetNode'>
<class 'graphql.pyutils.frozen_list.FrozenList'> [FieldNode at 14:147, FieldNode at 133:143]
# FieldNode at 31:128
results
name
book
title
__typename
__typename
# FieldNode at 133:143
__typename
问题
如何修复我的info.field_nodes[0].selection_set
以便正确获取FieldNode
?
【问题讨论】:
【参考方案1】:答案是here。我只需要深入挖掘我的 selection_set。
info.field_nodes[0].selection_set.selections[0].selection_set.selections
【讨论】:
以上是关于如何更新`info` graphql中的SelectionSet?的主要内容,如果未能解决你的问题,请参考以下文章
FaunaDB - 如何批量更新单个 graphQL 突变中的条目列表?