首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何列出两个端点节点之间的可选中间节点?

如何列出两个端点节点之间的可选中间节点?
EN

Stack Overflow用户
提问于 2016-09-19 21:53:36
回答 1查看 61关注 0票数 0

因此,我的图表中有国家、州和城镇。在乡村和城镇之间有两种可能的关系:

代码语言:javascript
复制
(c:Country)<-[:GEO_IN]-(s:State)<-[:GEO_IN]-(t:Town)

代码语言:javascript
复制
(c:Country)<-[:GEO_IN]-(t:Town)

我正在尝试生成一个表,其中列出了所有国家和州以及城镇的数量。我认为在关系中使用通配符是有意义的……

代码语言:javascript
复制
Match(t:Town)-[:GEO_IN*]->(c:Country)

但现在我不确定如何从该列表中获取状态列表。我正在使用这个非常简单的例子来测试和开发更复杂的理解。所以我知道我可以做几个可选的匹配,然后列出它们,但是如果我在t和c之间有n个可能的节点呢?

该解决方案非常受欢迎,但正如您可能猜到的那样,我真正想要的是更深入地了解如何思考cypher,以及何时使用哪些工具。

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-19 22:09:42

当你有一个可变长度时,使用路径别名,它们会容易得多。

代码语言:javascript
复制
MATCH path = (:Town) - [:GEO_IN*1..2] -> (:Country)
WITH NODES(path)[0] AS town, TAIL(NODES(path)) AS t_and_c
UNWIND t_and_c AS region
RETURN DISTINCT region, COUNT(DISTINCT town)

了解refcard的深度,不仅仅是匹配节点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39574935

复制
相关文章

相似问题

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