2015-02-23 125 views
0

我在我的数据库中有2个层次结构。Neo4j:列出节点标签

等级1:

公司{名称: 'ABC',CompanyId:1,} < - 类别< - 子类别< - 服务< - 资产< - 异常

层次2 :

公司{名称: 'XYZ',CompanyId:21,} < - 类别< - 服务< - 资产< - 异常

在我的层次结构中查询CompanyId的节点标签的最佳方法是什么?我正在寻找在以下格式的输出:

CompanyId:1

公司 类别 子类别 服务 异常

CompanyId:2

公司 类别 服务 异常

谢谢。

回答

0

假设每个公司层级链始于具有标签Company的公司节点,并始终以及具有Anomaly标签的节点,您可以追踪公司层次结构的路径并返回每个链的标签列表。

match p=(:Company)<-[*]-(:Anomaly) 
with head(nodes(p)) as Company, p 
return Company.CompanyId, reduce(labels = "", n IN nodes(p) | labels + labels(n)[0] + " ") 
+0

使用上面的查询,得到以下错误 - 类型不匹配:预计集但路径“头(P)的公司,P”(2号线,11列)。 – kkulkarn 2015-02-23 21:49:45

+0

抱歉,我有点匆忙。 'p'是一个路径,但'head'需要一个集合。 '节点(p)'返回一个集合。 – 2015-02-23 22:28:30