统计 Neo4j 数组里面的数据 属性

Count the data inside the Neo4j array property

运行 Neo4j 附带的迷你电影图的以下查询抛出 12 个结果,实际上是错误的:

MATCH (actor:Person{name:"Tom Hanks"})-[role:ACTED_IN]->(movie) return count(role) as roles

从"Tom Hanks"节点到电影节点确实有12个关系,但是ACTED_IN关系的属性作用其实是一个数组,可以包含多个值(一个演员在一部电影中扮演多个角色)。

所以我的问题是如何计算角色数组中的所有值以及演员扮演的角色总数?

以下应该为您完成:

MATCH 
    (actor:Person {name:"Tom Hanks"})-[role:ACTED_IN]->(movie) 
WITH 
    length(role.roles) as roleCount, actor
WITH 
    sum(roleCount) as totalRoleCount, actor
MATCH 
    (actor)-[role:ACTED_IN]->(movie) 
WITH 
    count(role) as roles, totalRoleCount
RETURN 
    roles, totalRoleCount

输出将是:

roles: 12, totalRoleCount: 20