首页 > 解决方案 > Neo4J Cypher 复杂查询

问题描述

问题的图像我在图像中有以下场景:红色节点是主题,黄色节点是课程名称。我需要找到属于课程 CS201 的最后一个主题。在此示例中,这应该是主题“数组”。我不能把它变成密码查询语言。我努力了 :

MATCH (n:course)-[:isPartOf]->(x:label) where not x.name contains 'CS201' return n

这应该给我主题“指针”,因为它不包含 CS201,然后我想我会退后一步到达主题“数组”但是它不起作用。

图形图像

标签: pythondatabasegraphneo4jcypher

解决方案


我认为你混淆了方向和名称。

MATCH (course:course)<-[:isPartOf]-(topic:label)<-[:hasPreq]-(prevTopic:label) 
where course.name contains 'CS201' 
return topic, prevTopic

为什么你有重复的课程条目?您可能没有在创建数据时使用 MERGE。


推荐阅读