Neo4j 聚合取决于关系属性

Neo4j aggregation depending on relationship property

我想建立一个数据库,其中 :Person 可以根据标准对 :Movie 进行评分。 我希望标准是动态的:

例如,约翰可以为泰坦尼克号的表演评分 3.8/5,为特效评分 4/5。 安娜可以给泰坦尼克号的表演评分 4/5,装饰评分 5/5

目前,我的策略是:

我的问题是: 有没有办法通过密码查询电影的评分并按标准汇总评分?

关于电影泰坦尼克号的查询应该return类似于:

[ {criteria: acting, avg_m.grade : 3.9},{criteria: special effects, avg_m.grade : 4},{criteria: decor, avg_m.grade : 5}]

您需要使用 Cypher 的 avg 函数。假设您想对标题为 "abc":

的电影求平均值
MATCH (:Movie {title:'abc'})<-[r:Rate]-()
RETURN r.criteria as criteria, avg(r.grade) as avg_grade