【问题标题】:Sort GraphQL query randomly随机排序 GraphQL 查询
【发布时间】:2020-06-13 22:41:25
【问题描述】:

我正在寻找随机 sort GraphQL 查询的解决方案。我查看了文档,看来他们没有选择。

有谁知道随机化以下查询的一种或解决方法?

query {
  allContentfulAttraction(
    limit: 4
    filter: { location: { eq: "AttractionLocation1" } }
  ) {
    edges {
      node {
        id
      }
    }
  }
}

【问题讨论】:

    标签: javascript reactjs graphql gatsby


    【解决方案1】:

    GraphQL 只是提供了一个框架,用于基于模式解析和验证字段值。它没有任何预设的过滤或排序查询数据的方法。是否为客户端公开执行此操作的方法以及如何实现该功能取决于服务器。

    特别是关于 Gatsby,查看他们的 API 支持查询随机节点。充其量,您可以查询所有节点,然后使用 lodash 的 sampleSize 或 Chance 的 pickset 从返回的数据中随机选择一组元素。

    【讨论】:

    • 这种方法(在盖茨比中)的问题是,一旦帖子数量增加,它会增加构建时间。只要求有限数量的已经随机化的帖子确实会更有效率
    • 是的,如果能够通过 API 执行此操作,效率更高。但是,如果 API 不支持该功能,那么唯一的选择就是在客户端进行。
    • 让我们期待未来的实施。使用 gatsby,如果您在 gatsby-node 中执行查询并仅传递上下文中减少的帖子数量,则构建时间会受到控制
    【解决方案2】:

    https://www.howtographql.com/graphql-js/8-filtering-pagination-and-sorting/ 表示排序由您使用的任何框架处理,例如 Prisma orderByLighthouse @orderBy

    【讨论】:

      猜你喜欢
      • 2016-05-29
      • 1970-01-01
      • 2021-09-12
      • 2011-09-03
      • 1970-01-01
      • 1970-01-01
      • 2020-08-10
      • 2014-11-15
      • 2019-12-29
      相关资源
      最近更新 更多