首页 > 解决方案 > Neo4j:每个节点对只显示一个关系

问题描述

我有一个具有一对多关系的图形数据库。有一个中心节点与其他所有剩余节点具有一个或多个相同类型的关系(但具有不同的属性但方向相同。即:远离中心节点)。

当我在 Neo4j 浏览器中查询所有节点时,可视化显示节点对之间的多重关系。我怎么能把它限制在一种关系上。

我找到了这个相关的问题,但它不能满足我的目的。以下查询仍然显示多个关系

MATCH p=()-[r:AT_THE_SAME_TIME_AS]->() RETURN p, collect(r)[0] AS r LIMIT 25

所以我尝试了以下方法,但它不显示关系,而只显示节点:

MATCH p=()-[r:AT_THE_SAME_TIME_AS]->(s) RETURN s, collect(r)[0] AS r LIMIT 25

如何做到这一点?

标签: neo4jcypher

解决方案


所以这是一个小的示例数据集(如果不正确,请纠正我):

CREATE (t1:Test {id: 1})
CREATE (t2:Test {id: 2})
CREATE (t1)-[:AT_THE_SAME_TIME_AS {counter: 1}]->(t2)
CREATE (t1)-[:AT_THE_SAME_TIME_AS {counter: 2}]->(t2);

这是仅获得两者之间第一个关系的查询:

MATCH (t1:Test {id: 1})-[r:AT_THE_SAME_TIME_AS]->(t2:Test) RETURN t1.id, collect(r)[0] as r;

希望有帮助!

问候,汤姆


推荐阅读