我有多个层次结构,每个层次结构代表一个组织。
只需挑选2个样本层次结构......
层次结构1:
公司{name:'ABC',CompanyId:1,}< - Category< - SubCategory< - Service< - Asset< - Anomaly
层次结构2:
公司{名称:'XYZ',CompanyId:21,}< - 类别< - 服务< - 资产< - 异常
Anomaly可以进一步生成子项(动态添加检测到的,一个是实例)。我们的后端引擎查询整个层次结构。
考虑到可以附加到Anomaly的动态节点,我如何推广该密码?
匹配srvhier =(:公司)< - [] - ()返回多个密码 match srvhier =(:Company)< - [] - (:Instance)除非我有实例,否则不会返回任何数据
感谢。
答案 0 :(得分:1)
您正尝试将Instace指定为示例中的标签。 如果您需要所有节点信息,那么您可以尝试这样
MATCH path= (:Company)<-[*]-(Instance)
RETURN path
在此之后,您可以使用extract()方法来检索信息。
以下是http://neo4j.com/docs/stable/query-functions-collection.html#functions-extract
的参考资料答案 1 :(得分:0)
我看了萨蒂什的回答,还有这个 - how to get the last node in path in neo4j?
可以提出符合我要求的密码......
MATCH path= (:Company {company_id:240})<-[*]-()
WITH COLLECT(path) AS paths, MAX(length(path)) AS maxLength
WITH FILTER(n IN paths WHERE length(n)= maxLength) AS compArray
RETURN EXTRACT(n IN compArray | LAST(nodes(n))) as lastN, compArray