0

我有以下数据:

A --> B
B --> C

考虑这个查询:

START n = node(A, B)
MATCH p = n-[*..2]-(x)
RETURN n.Name, x.Name, length(p)

从 2 个输入节点开始,遍历不超过 2 跳的其他节点。

返回以下内容:

==> +------------------------------------------------+
==> | n.Name       | x.Name              | length(p) |
==> +------------------------------------------------+
==> | "A"          | "C"                 | 2         |
==> | "B"          | "C"                 | 1         |

背景故事:在我的应用程序中,您可以搜索兴趣(一次多个)。每个兴趣都可以有相关的兴趣。有时输入的兴趣共享共同的兴趣,从而导致重复的兴趣。

4

1 回答 1

0

看起来简单地调用MIN就是我想要的:

RETURN x.Name, min(length(p))

所以它将按 x.Name 分组并采用最小的跃点列。

http://docs.neo4j.org/chunked/stable/query-aggregation.html

可以对所有匹配的子图进行聚合,也可以通过引入键值进一步划分。这些是非聚合表达式,用于对进入聚合函数的值进行分组。

于 2012-06-06T05:16:04.580 回答