首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在一个GraphQL请求中返回多个结果?

如何在一个GraphQL请求中返回多个结果?
EN

Stack Overflow用户
提问于 2020-12-23 17:34:23
回答 1查看 71关注 0票数 0

我有一个GRANDstack应用。

对于这个应用程序,我在Neo4j中有一个Cypher请求,如下所示:

代码语言:javascript
复制
MATCH (c:CLUSTER)
WITH c
ORDER BY c.cluster_score DESC
LIMIT 5
MATCH (c)<-[:HAS_CLUSTER]-(a:ARTICLE)
WITH c,a
ORDER BY a.article_score  DESC
RETURN c, collect(a)[..5] as articles

它返回每个集群中最好的文章。我必须在我的React界面中显示它。我想用GraphQL实现它,但是我不知道如何编码,因为我在这个请求中返回了两个东西。

如何在GraphQL中编写我的请求?

EN

回答 1

Stack Overflow用户

发布于 2020-12-24 00:31:20

您返回了两个值carticles,但是无法在GraphQL类型中表示它。创建一个中间类型,我将其称为Intermediary

代码语言:javascript
复制
type CLUSTER {
   id: ID
}

type ARTICLE {
   id: ID
}

type Intermediary {
}

并将CLUSTERARTICLE作为字段嵌入到类型中;

代码语言:javascript
复制
type Intermediary {
  cluster: CLUSTER 
  article: ARTICLE
}

然后在你的@cypper指令所在的地方使用这个类型;

代码语言:javascript
复制
type Query {
  myQuery: Intermediary @cypher(...)
}

在将值投射到cypher查询之外时,返回一个表示Intermediary类型的对象;

代码语言:javascript
复制
MATCH (c:CLUSTER)
WITH c
ORDER BY c.cluster_score DESC
LIMIT 5
MATCH (c)<-[:HAS_CLUSTER]-(a:ARTICLE)
WITH c,a
ORDER BY a.article_score  DESC
WITH c, collect(a)[..5] as articles
RETURN {
    cluster: c,
    articles: articles
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65421987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档