Neo4j Cypher:查找/合并至少有2个公共节点的节点 [英] Neo4j Cypher: Find/Merge nodes having atleast 2 common nodes

查看:0
本文介绍了Neo4j Cypher:查找/合并至少有2个公共节点的节点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是Graph DB和Neo4j的新手,需要帮助来查询至少有2个公共节点的数据

Graph

从上图中,我需要获取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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆