Neo4j中的分组字段
我正在使用Neo4j 1.8.3 我正在运行一个返回如下数据的查询Neo4j中的分组字段,neo4j,cypher,Neo4j,Cypher,我正在使用Neo4j 1.8.3 我正在运行一个返回如下数据的查询 A 1 X A 2 Y B 3 Z C 4 Q C 5 X 我希望数据以如下方式呈现: A 1,2 X,Y B 3 Z C 4,5 Q,X 请让我知道我们如何才能做到这一点是在塞弗。 提前感谢。如果您的原始退货条款是: RETURN a, b, c 尝试: 如果您的原始退货条款是: RETURN a, b, c 尝试: 下面是我在面对这个问题时所做的: 据我所知,你不可能一次就完成
A 1 X
A 2 Y
B 3 Z
C 4 Q
C 5 X
我希望数据以如下方式呈现:
A 1,2 X,Y
B 3 Z
C 4,5 Q,X
请让我知道我们如何才能做到这一点是在塞弗。
提前感谢。如果您的原始退货条款是:
RETURN a, b, c
尝试:
如果您的原始退货条款是:
RETURN a, b, c
尝试:
下面是我在面对这个问题时所做的: 据我所知,你不可能一次就完成这项任务。您需要使用WITH语句来分解查询,让cypher中途收集一些节点,并对后续匹配执行收集操作。我这是什么意思?考虑这个例子: 如果您当前的查询如下所示:
MATCH (a)--(b)--(c) RETURN a,b,c
然后您必须将其更改为以下内容
MATCH {{ Perform match here just for node type 'a' }} WHERE {{ conditions if any }}
WITH a
MATCH (a)--{{ Perform match for 'b' and 'c' here using 'a' }}
RETURN a,collect(b) as first, collect(c) as second
ORDER BY length(first, second) DESC
如果你明白我想说的话,那就试试吧。否则,最好的方法是在中创建一个样本数据集,启动查询并在此处共享,这样我们就可以准确地看到您面临的问题。以下是我在面对这个问题时所做的: 据我所知,你不可能一次就完成这项任务。您需要使用WITH语句来分解查询,让cypher中途收集一些节点,并对后续匹配执行收集操作。我这是什么意思?考虑这个例子: 如果您当前的查询如下所示:
MATCH (a)--(b)--(c) RETURN a,b,c
然后您必须将其更改为以下内容
MATCH {{ Perform match here just for node type 'a' }} WHERE {{ conditions if any }}
WITH a
MATCH (a)--{{ Perform match for 'b' and 'c' here using 'a' }}
RETURN a,collect(b) as first, collect(c) as second
ORDER BY length(first, second) DESC
如果你明白我想说的话,那就试试吧。否则,最好的方法是在中创建一个示例数据集,启动查询并在此处共享,因此,我们可以清楚地看到您所面临的问题。我尝试过这样做,但不起作用,因为collect只包含一个元素,即collection应用于每个元素,而collection只包含一个元素。我尝试过这样做,但不起作用,因为collect只包含一个元素,即collection应用于每个元素一个集合中只会有一个元素