Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将方法代码移动到Neo4j Cypher查询_Neo4j_Cypher_Graph Databases_Spring Data Neo4j - Fatal编程技术网

将方法代码移动到Neo4j Cypher查询

将方法代码移动到Neo4j Cypher查询,neo4j,cypher,graph-databases,spring-data-neo4j,Neo4j,Cypher,Graph Databases,Spring Data Neo4j,我有一个springneo4j存储库方法getavgvotesweightforcriteria @Query("MATCH (d:Decision)<-[:VOTED_FOR]-(v:Vote)-[:VOTED_ON]->(c:Criterion) WHERE id(d) = {0} AND id(c) = {1} RETURN avg(v.weight)") double getAvgVotesWeightForCriterion(Decision decision, Crite

我有一个springneo4j存储库方法
getavgvotesweightforcriteria

@Query("MATCH (d:Decision)<-[:VOTED_FOR]-(v:Vote)-[:VOTED_ON]->(c:Criterion) WHERE id(d) = {0} AND id(c) = {1} RETURN avg(v.weight)")
double getAvgVotesWeightForCriterion(Decision decision, Criterion criterion);
是否可以将
calculatewight
方法中的逻辑完全移动到Cypher查询?为了得到这样的东西:

@Query ....
double calculateWeight(Decision decision, List<Criterion> criteria)
@Query。。。。
双重计算权(决策、列表标准)

这应该是您想要做的

您可以根据标准对平均聚合进行分组,然后对权重求和

MATCH (d:Decision)<-[:VOTED_FOR]-(v:Vote)-[:VOTED_ON]->(c:Criterion) 
WHERE id(d) = {0} AND id(c) IN {1} 
WITH c, avg(v.weight) as weight
RETURN sum(weight)
匹配(d:决策)(c:标准)
其中id(d)={0}和{1}中的id(c)
以c、平均重量(v.重量)作为重量
返回和(重量)
MATCH (d:Decision)<-[:VOTED_FOR]-(v:Vote)-[:VOTED_ON]->(c:Criterion) 
WHERE id(d) = {0} AND id(c) IN {1} 
WITH c, avg(v.weight) as weight
RETURN sum(weight)