因此,我的图表中有国家、州和城镇。在乡村和城镇之间有两种可能的关系:
(c:Country)<-[:GEO_IN]-(s:State)<-[:GEO_IN]-(t:Town)和
(c:Country)<-[:GEO_IN]-(t:Town)我正在尝试生成一个表,其中列出了所有国家和州以及城镇的数量。我认为在关系中使用通配符是有意义的……
Match(t:Town)-[:GEO_IN*]->(c:Country)但现在我不确定如何从该列表中获取状态列表。我正在使用这个非常简单的例子来测试和开发更复杂的理解。所以我知道我可以做几个可选的匹配,然后列出它们,但是如果我在t和c之间有n个可能的节点呢?
该解决方案非常受欢迎,但正如您可能猜到的那样,我真正想要的是更深入地了解如何思考cypher,以及何时使用哪些工具。
提前感谢
发布于 2016-09-19 22:09:42
当你有一个可变长度时,使用路径别名,它们会容易得多。
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的深度,不仅仅是匹配节点。
https://stackoverflow.com/questions/39574935
复制相似问题