Neo4j 在匹配节点列表上聚合

Neo4j 在匹配节点列表上聚合,neo4j,cypher,Neo4j,Cypher,我有一个Cypher查询,我想将其扩展为在匹配节点列表上求和 我的查询如下所示: MATCH (u:User {name: {input} })-[r:USES]-(t) RETURN SUM(t.weight) 这匹配一个用户节点,我想调整它以匹配用户节点列表,然后执行聚合 我当前的实现只是在循环中调用查询,并在Cypher之外执行聚合。这会导致稍微不准确的结果和大量API调用 有没有一种方法可以根据元素列表(在我的例子中是字符串)来评估Cypher查询 我使用的是Neo4j 2.1或2.

我有一个Cypher查询,我想将其扩展为在匹配节点列表上求和

我的查询如下所示:

 MATCH (u:User {name: {input} })-[r:USES]-(t) RETURN SUM(t.weight)
这匹配一个用户节点,我想调整它以匹配用户节点列表,然后执行聚合

我当前的实现只是在循环中调用查询,并在Cypher之外执行聚合。这会导致稍微不准确的结果和大量API调用

有没有一种方法可以根据元素列表(在我的例子中是字符串)来评估Cypher查询

我使用的是Neo4j 2.1或2.2


干杯

您可以在操作符中使用
,并传入用户名数组:

MATCH (u:User)-[r:USES]-(t) 
WHERE u.name in ['John','Jim','Jack']
RETURN u.name, SUM(t.weight)
您可以使用参数保持和数组值来代替此处的数组:

MATCH (u:User)-[r:USES]-(t) 
WHERE u.name in {userNames}
RETURN u.name, SUM(t.weight)

userNames = ['John','Jim','Jack']