gpt4 book ai didi

neo4j - 通过关系属性的总和限制 Neo4j 密码查询结果

转载 作者:行者123 更新时间:2023-12-04 16:11:46 26 4
gpt4 key购买 nike

有没有办法通过关系属性的总和来限制密码查询?

我正在尝试创建一个密码查询,该查询返回距离起始节点 100 范围内的节点。所有的关系都有一个距离集,一条路径中所有距离的总和就是到起始节点的总距离。

如果 WHERE 子句可以处理聚合函数,我正在寻找的可能看起来像这样

START n=node(1)
MATCH path = n-[rel:street*]-x
WHERE SUM( rel.distance ) < 100
RETURN x

有没有办法可以对 where 子句的路径中的关系距离求和?

最佳答案

当然,您想要做的就像在 SQL 查询中拥有一样。

在 cypher 中,您可以使用 WITH 链接查询段并在下一部分中使用前一部分的结果。 ,见 manual .

对于您的示例,您会假设:

START n=node(1)
MATCH n-[rel:street*]-x
WITH SUM(rel.distance) as distance
WHERE distance < 100
RETURN x

不幸的是 sum 还不适用于集合

所以我尝试以不同的方式(对于可变长度路径):
START n=node(1)
MATCH n-[rel:street*]-x
WITH collect(rel.distance) as distances
WITH head(distances) + head(tail(distances)) + head(tail(tail(distances))) as distance
WHERE distance < 100
RETURN x

不幸的是,空列表的头部没有返回 null这可能是 coalesce d 至 0但只是失败了。所以这种方法只适用于固定长度的路径,不知道这是否适合你。

关于neo4j - 通过关系属性的总和限制 Neo4j 密码查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12449295/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com