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

Neo4j-获取特定类型节点的所有父节点,neo4j,cypher,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:fa

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

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. 
我想要一个密码查询。我很感激,也会很感激的
如果有人能告诉我结果。

我找到了密码查询。如果有人在找的话,请记录
不过,我必须为这个查询寻找性能方面,而不是性能方面

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

匹配(j)-[:HAS]->(k)-[:HAS]->(l)我找到了密码查询。如果有人在找的话,请记录
不过,我必须为这个查询寻找性能方面,而不是性能方面

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