我有一个Cypher查询,我希望将其扩展为在匹配节点列表中进行总结。
我的查询如下:
MATCH (u:User {name: {input} })-[r:USES]-(t) RETURN SUM(t.weight)
这匹配一个用户节点,我想调整它以匹配用户节点列表,然后执行聚合。
我当前的实现只是在循环中调用查询并在Cypher之外执行聚合。这会导致稍微不准确的结果和大量的API调用。
有没有办法根据元素列表(我的字符串中的字符串)来评估Cypher查询?
我使用的是Neo4j 2.1或2.2。
干杯
答案 0 :(得分:2)
您可以使用IN
运算符并传入一组用户名:
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']