如何对graphQL中的字段进行运行时数据操作?

Posted

技术标签:

【中文标题】如何对graphQL中的字段进行运行时数据操作?【英文标题】:How to do runtime data manipulation over a field in graphQL? 【发布时间】:2019-08-04 11:58:52 【问题描述】:

我有以下问题,

query

  snapshots 
    name
    timestamp
    aggregations 
      rating
      technology 
        name
        category 
          name
        
      
      trend
    
  

trend 不是数据库中的字段,我希望在运行时计算该字段的值并返回,有什么方法可以使用 graphQL 做到吗?

我正在寻找某种方式,通过这种方式我可以将函数与此查询中的趋势属性相关联,并在该函数中执行任何操作、比较计算或任何操作。例如

query

  snapshots(limit: 1, sort: "timestamp:desc") 
    name
    timestamp
    aggregations 
      rating
      technology 
        name
        category 
          name
        
      
      trend: function (() =>  
      // do some calculation or comparison or some sub query here
     )
    
  

我无法修改数据库或编写此 graphQL 查询的 API 中的任何内容。

【问题讨论】:

您的解析器在哪里?请发布与此查询相关的所有代码。您可以在解析器中轻松完成此操作。 这个查询与strapi中的GraphQl插件一起使用,它有自己的解析器。 【参考方案1】:

在 GraphQL 中,您只能操作服务器上的数据(使用解析器)。

如果您无权修改服务器上的 GraphQL 解析器,恐怕您无法完成您所描述的。

【讨论】:

以上是关于如何对graphQL中的字段进行运行时数据操作?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 apollo 服务器对 graphQl 中的数据进行排序?

Graphql 继电器数组字段

Go 使用 GraphQL - 基础教程

大话GraphQL新手上车

GraphQL新手上路

如何在 graphQL 片段中定义可选字段以进行查询