GraphQL GroupBy

时间:2018-06-13 10:14:08

标签: laravel graphql

我试图弄清楚这是否可能,以及是否有最佳实践可以实现。我们使用包creating them manually

在Laravel中实现GraphQL API

让我们说我们希望所有按品牌分组的汽车在图表中显示每个品牌的数量。

没有分组的请求应该如下所示:

{
  cars {
    id,
    brand
  }
}

这样,每个品牌的金额可以在客户端计算。但是如何在服务器端执行此操作。

例如:

{
  carMetrics(groupBy: "brand") {
    group,
    amount
  }
}

这将返回一个对象数组,其中包含该组中的组和汽车数量。

因为args和结果的定义是最终的,所以我们必须为每个需要分组的对象创建一个新的查询和类型。这是方法吗?还是有更动态的方法来实现GraphQL?

1 个答案:

答案 0 :(得分:0)

我在Apollo Launch Pad(https://launchpad.graphql.com/w9740qm8wz)上建立了一个可能会采用的类似方法的快速示例。您可以使用底部的查询进行测试(它不会为您保存该查询)。

定义是这样的

type Car {
  id: ID
    manufacturer: String
    name: String
}

type Manufacturers {
    name: String
    cars: [Car]
}

type Query {
  cars: [Car]
  manufacturers: [Manufacturers]
}

查询看起来像这样:

{
  cars {
    ...car
  }
  manufacturers {
    name
    cars{
      ...car
    }
  }
}

fragment car on Car {
    id
    manufacturer
    name
}