Laravel GraphQL GroupBy

Laravel GraphQL GroupBy,laravel,graphql,Laravel,Graphql,我试图弄清楚这是否可能,是否有一个最佳实践可以实现这一点。我们正在使用这个包在Laravel中实现一个GraphQLAPI 假设我们希望所有按品牌分组的汽车在图表中显示每个品牌的数量 没有分组的请求应如下所示: { cars { id, brand } } { cars { ...car } manufacturers { name cars{ ...car } } } fragment car on Car

我试图弄清楚这是否可能,是否有一个最佳实践可以实现这一点。我们正在使用这个包在Laravel中实现一个GraphQLAPI

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

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

{
  cars {
    id,
    brand
  }
}
{
  cars {
    ...car
  }
  manufacturers {
    name
    cars{
      ...car
    }
  }
}

fragment car on Car {
    id
    manufacturer
    name
}
这样,每个品牌的金额可以在客户端计算。但如何在服务器端做到这一点

例如:

{
  carMetrics(groupBy: "brand") {
    group,
    amount
  }
}
这将返回一个包含该组和该组中汽车数量的对象数组


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

我在阿波罗发射台上设置了一个快速示例,说明我可能会采取的类似方法:。您可以使用底部的查询来测试它(它不会为您保存)

定义是这样的

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

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

type Query {
  cars: [Car]
  manufacturers: [Manufacturers]
}
查询看起来更像这样:

{
  cars {
    id,
    brand
  }
}
{
  cars {
    ...car
  }
  manufacturers {
    name
    cars{
      ...car
    }
  }
}

fragment car on Car {
    id
    manufacturer
    name
}