Neo4j聚合具有相同属性值的所有节点

时间:2017-04-29 20:48:47

标签: neo4j aggregation

我有一部电影数据库

我尝试创建一个返回具有相同actor的所有电影的查询 例如:

电影|演员

Rocky,Rocky II,Rocky III,Rocky IV |西尔维斯特史泰龙

2 个答案:

答案 0 :(得分:2)

您需要使用collect功能。例如,如果您尝试neo4j The Movie Graph

MATCH (P:Person)-[:ACTED_IN]->(M:Movie)
RETURN P as Actor, 
       collect(M) as Movies

如果actor是属性,则查询可以是:

MATCH (M:Movie)
RETURN M.MAIN_ACTOR as Actor, 
       collect(M) as Movies

但是你需要明白,这不符合图数据库的精神:让演员分开节点,并将它们之间的关系添加到电影节点。

答案 1 :(得分:1)

你的问题很模糊,但我仍然可以指出你正确的方向。尝试使用:

MATCH (a:Person{name:"Sylvester Stallone"})-[:ACTED_IN]->(m:Movie)
RETURN a as actor,collect(m) as movies