ChilliCream graphql:使用变量定义 order_by

问题描述 投票:0回答:1

我有一个有效的 graphql 查询:

query orderOnTheFly {
  products(order:{ id: ASC, status: ASC }) 
  {
    nodes { id status }
  }
}

现在我必须(在前端)实现用户选择要使用的字段(

id
status
)和顺序(
ASC
DESC
)(一次仅按一个字段排序)。我想写的内容(例如 $fieldName="id", $order="ASC" - 让排序
id ASC
):

query orderOnTheFly( $fieldName:String, $order:String) {
  products(order:{ $fieldName: $order }) 
  {
    nodes { id status }
  }
}

或至少($ idOrder = null,$ statusOrder =“ASC” - 当我不选择

id
字段进行排序时,只能通过
status ASC

query orderOnTheFly( $idOrder:String, $statusOrder:String) {
  products(order:{ id: $idOrder, status: $statusOrder }) 
  {
    nodes { id status }
  }
}

它们都不起作用。这种情况如何解决?

前端使用react-relay编译器,所以我不想通过字符串操作生成graphql查询。否则 - 我的 graphql 服务器是带有 hotChocolate 包的 .net core 服务器(数据库是 Marten 事件存储)。

sorting dynamic graphql hotchocolate
1个回答
0
投票

我认为处理此问题的最简单方法是将“NONE”定义为可能的排序方向之一。

默认查询为:

products(order:{ id: "NONE", status: "NONE" })

但是根据用户的选择,其中一个或两个将设置为“ASC”或“DESC”

一个挑战是,此结构不允许您在对两个字段进行排序时指定先对哪个字段进行排序。

© www.soinside.com 2019 - 2024. All rights reserved.