graphql - Graphql 语法,用于对数组中具有不同参数的同一字段进行单个查询
问题描述
我正在寻找类似下面的伪查询:
query users($ids: [String!]) {
"id from $ids": getUser(id){
id
name
dob
}
}
得到如下响应:
data: {
'039ccf5c-3070-4368-b790-0884669e759d': {id: '039ccf5c-3070-4368-b790-0884669e759d', name: 'u1', 'dob': 12-12-12'},
'139ccf5c-3070-4368-b790-0884669e759d': {id: '139ccf5c-3070-4368-b790-0884669e759d', name: 'u1', 'dob': 12-12-12'},
}
这可能吗?
解决方案
您可以使用别名多次查询同一字段:
query users($id1: String!, $id2: String!) {
user1: getUser(id: $id1) {
...UserFragment
}
user2: getUser(id: $id1) {
...UserFragment
}
}
fragment UserFragment on User {
id
name
dob
}
GraphQL 中没有控制结构,因此无法循环遍历作为列表的值。如果您的 ID 列表是可变长度的,那么您将必须以编程方式构建与上述类似的查询,动态生成变量定义和别名字段。
推荐阅读
- php - 在 Laravel 的同一页面上发布评论和显示评论
- python - Flask-sqlalchemy 临时会话/上下文变量
- django - 如何在 django 中同时在两个不同的数据库表中插入值?
- javascript - 如何在角度7中的一个ngfor下将两个不同插值中的值相乘
- clips - Is there a way to logically bind values from two different multislots?
- python - opencv/cv2/opencv-python 名称不匹配,如何说服 pip 不查找已通过 conda 安装的包?
- java - 如何在 javafx 中使用节点方法 setAll() 和 addAll()?
- sql - 如何从包含逗号分隔条目的变量中创建(不同的)值列表?
- laravel - 如何转换雄辩的关系对象?
- python - 错误=surrogateescape vs 错误=替换