我有一个GRANDstack应用。
对于这个应用程序,我在Neo4j中有一个Cypher请求,如下所示:
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中编写我的请求?
发布于 2020-12-24 00:31:20
您返回了两个值c和articles,但是无法在GraphQL类型中表示它。创建一个中间类型,我将其称为Intermediary;
type CLUSTER {
id: ID
}
type ARTICLE {
id: ID
}
type Intermediary {
}并将CLUSTER和ARTICLE作为字段嵌入到类型中;
type Intermediary {
cluster: CLUSTER
article: ARTICLE
}然后在你的@cypper指令所在的地方使用这个类型;
type Query {
myQuery: Intermediary @cypher(...)
}在将值投射到cypher查询之外时,返回一个表示Intermediary类型的对象;
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
}https://stackoverflow.com/questions/65421987
复制相似问题