Neo4j-获取特定类型节点的所有父节点

时间:2019-12-25 17:52:42

标签: neo4j cypher

我是属性图和数据库的新手,编写了更简单的密码查询。我有一个像下面这样的模型。

Project(is_lib: true|false)

Project[:HAS]-> Artifact[:HAS]-> Version

Version[:DEPENDS_ON]-> Version

示例

项目工件:

ProjectA(is_lib:false) -> ProjectA-ArtifactA -> [pa-v1.1, pa-v1.2]

ProjectB(is_lib:false) -> ProjectB-ArtifactB -> [pb-v2.0]

ProjectC(is_lib:true) -> ProjectC-ArtifactC -> [pc-v5.1, pc-v5.2]

关系:

pa-v1.1 -> pb-v2.0 -> pc-v5.1

pa-v1.2 -> pc-v5.2

在pc-v5.1和pc-v5.2之上是 lib 类型,它是项目属性。我想让所有项目类型为 lib:true 的父项。 数据库中可能有大量的项目

因此在上面的示例中,我期望得到以下结果。

pc-v5.1 has parents pa-v1.1, pb-v2.0. 
pc-v5.2 has parents pa-v1.2. 

我想要一个密码查询。我会感激不尽 如果有人可以将结果导向我。

1 个答案:

答案 0 :(得分:0)

我知道了密码查询。如果有人在寻找记录。
我必须为此查询寻找性能方面的信息,而不是性能方面的信息。

MATCH(j)-[:HAS]->(k)-[:HAS]->(l)<-[:DEPENDS_ON]-(m)<-[:HAS]-(n)<-[:HAS]-(o)
WHERE o.is_lib=false
return m, l