Neo4j Cypher:查找/合并至少有2个公共节点的节点 [英] Neo4j Cypher: Find/Merge nodes having atleast 2 common nodes
本文介绍了Neo4j Cypher:查找/合并至少有2个公共节点的节点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我是Graph DB和Neo4j的新手,需要帮助来查询至少有2个公共节点的数据
从上图中,我需要获取ROW1和Row2的详细信息,因为它是两个公共节点ID_B和ID_C
Graph 2 with more nodes having common neighbor
使用图表2,我需要将第1行、第2行和第3行的详细信息合并为 第1行和第2行ID_B、ID_C相同 第2行和第3行的ID_A、ID_B和C相同推荐答案
我认为这样就可以了:
MATCH(r1:ROW)-[:HAS_ID]->(i)<-[:HAS_ID]-(r2:ROW)
WHERE id(r1) > id(r2)
WITH r1,r2, COLLECT(i) AS is
WHERE SIZE(is) > 1
RETURN r1,r2
如果您有多条记录,并且希望查询返回具有两条或多条共同记录的唯一记录列表,您可以执行以下操作:
MATCH(r1:ROW)-[:HAS_ID]->(i)<-[:HAS_ID]-(r2:ROW)
WHERE id(r1) > id(r2)
WITH [r1,r2] AS nodePair, COLLECT(i) AS is
WHERE SIZE(is) > 1
UNWIND nodePair AS node
RETURN DISTINCT node
这篇关于Neo4j Cypher:查找/合并至少有2个公共节点的节点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文