【问题标题】:How to implement graphQL sub-query如何实现graphQL子查询
【发布时间】:2018-12-09 00:04:01
【问题描述】:

我在试图找出一个查询条件的语法时遇到了困难,这似乎是一个很常见的查询条件。

下面的 typedef 以一对多(作者)关系存储代表作者的代理的 ID 值。我想在从作者模式中获取详细信息的同时提取代理的名称。

type Author {
    id: ID!
    firstName: String
    middleInitial: String
    lastName: String
    posts: [Post]
    agent: ID

}

所以封闭查询(返回所有作者的列表)如下所示:

{
  authors {
    firstName
    lastName
    agent
    }
}

这会给我代理的 ID。如何使用相同的查询从与上述类似的 typedef 中获取代理的名称?

【问题讨论】:

    标签: javascript graphql


    【解决方案1】:

    type Agent {
        id: ID!
        name: String
    }
    
    type Author {
        id: ID!
        firstName: String
        middleInitial: String
        lastName: String
        posts: [Post]
        agent: Agent
    }
    
    // Query
     {
       authors {
         firstName
         lastName
         agent {
             name
          }
        } 
      }

    【讨论】:

    • 这是我采用的精确“解决方法”,但我认为在 typedef 中使用光标类型 ID 然后将它们用作另一个对象的索引会更容易。我可能弄错了。
    • 我不认为这是一种解决方法.. 这是正确的方法
    • 所以不能通过索引“ID?”那里的许多示例模式都使用该方法,我认为必须有一种方法可以在单个查询中解决它。
    【解决方案2】:

    查询将如下所示。我不确定你的 Agent typedef 是什么样的,但你明白了

    type Author {
        id: ID!
        firstName: String
        middleInitial: String
        lastName: String
        posts: [Post]
        agent: {
            id
            name
            ...other_agent_properties
        }
    }
    

    【讨论】:

    • 我说错了一对一;每个作者都有一个代理人,但每个代理人有很多作者。
    猜你喜欢
    • 2018-07-24
    • 2021-11-30
    • 2019-04-06
    • 2021-05-01
    • 2021-01-10
    • 2018-06-24
    • 2021-09-06
    • 2021-05-23
    • 2020-01-06
    相关资源
    最近更新 更多