通过多重关系Neo4j

时间:2018-10-03 07:17:38

标签: neo4j cypher graph-databases

我想用某种交集执行递归查询。我有一个带有设备标签的节点,并且有这样的字段-device_id,column1,column2,column3 我需要找到通过column1相等性连接的Device节点的所有记录,然后通过带有先前查询结果的column2查找其他节点的连接,最后一步是通过column3的结果之间找到连接与所有其他节点的第二查询。 我为将通过column1,column2和column3相等来连接节点的关系创建了单独的关系。

如何编写此查询?

我尝试设计类似thism的方法,但是此查询返回了太多结果,并且对Excel中的数据进行简单过滤后发现结果是错误的:

MATCH (d:Device)-[:DEV_COLUMN1]->(d1:Device)-[:DEV_COLUMN2]->(d2)-[:DEV_COLUMN3]->(d3)
RETURN distinct d3.device_id, collect(distinct d3.column1), collect(distinct  d3.column2), collect(distinct d3.column3)

1 个答案:

答案 0 :(得分:0)

从您的描述以及这种模式(d:Device)-[:DEV_COLUMN1]->(d1:Device)-[:DEV_COLUMN2]->(d)-[:DEV_COLUMN3]->(d1)来看,我看到一个错误:您使用了两次变量dd1

据我了解,您的模式应为:(d:Device)-[:DEV_COLUMN1]->(d1:Device)-[:DEV_COLUMN2]->(d2)-[:DEV_COLUMN3]->(d3)