如何在neo4j中划分与两个不同节点相关的节点的依赖关系?

问题描述

我有一个电影和演员图论模型。两者之间的关系是“需要”。该图如下所示。 A 和 B 是电影。 1、2、3、4、5、6是演员。电影 A 需要 1、2、3、4 个演员。电影 B 需要 4、5、6 个演员。我们可以看到 4 在两部电影之间共享。

当前查询

MATCH (m :Movie) -[r :require]-> (a :actor)
RETURN m,r,a;
Current Output

Current Output

Expected Output

我想显示如下内容在这里,演员 4 为每部电影显示一次。有人可以帮我解决这个问题吗?

Expected Output

解决方法

Neo4j 浏览器中的可视化逻辑每个节点只显示一次,因此您不能两次获取节点 4。 一种解决方法是使用 neo4j APOC 库并将虚拟节点作为蓝色节点的副本而不是真实节点返回。如果您从节点 4 中创建两个虚拟节点,UI 会认为它们是不同的,因此会显示两个节点。

,

你可以按电影对演员进行分组,最后得到一行电影,[演员列表]

MATCH (m:Movie)-[r:require]->(a :actor)
WITH m collect(a) as actors
return m,actors