【发布时间】:2020-04-08 23:02:47
【问题描述】:
别名非常方便,在为特定解析器设置别名时效果很好。例如:
{
admins: users(type:"admin"){
username
}
moderators: users(type:"moderators"){
moderators
}
}
我不确定如何处理字段本身的别名。例如:
{
site_stats {
hits: sum(field: "hits")
bounces: sum(field: "bounces")
}
}
如果解析器返回任何 sum 值,则相同的值将别名为 hits 和 bounces(这是有道理的,因为甚至只能返回一个总和值)。如果我让解析器在返回结果时使用别名作为字段名,hits 和bounces 都将变为null。
我可以简单地将这些字段分解为单独的解析器,但这会使前端开发人员的集成变得复杂。我们也会失去大量的效率优势,因为我可以将单个查询中所需的所有数据汇总到我们的数据源(我们正在使用 ElasticSearch)。
非常感谢各位天才的帮助!
【问题讨论】:
-
为什么使用别名而不是简单的
{ site_stats(someFilter:"month") { hits, bounces } }? -
这可能不是最好的例子,但重点是
sum将根据计算返回单个值(例如,将已识别字段中的所有数字相加)。
标签: node.js graphql apollo apollo-server