Neo4j'匹配'在'放松'操作

时间:2016-04-06 01:19:17

标签: neo4j cypher graph-databases

我有一个Neo4j查询,我试图获取所有不同的ID,然后,对于每个id,返回与该id匹配的所有节点。这是我的查询的样子:

match (x:Log) with collect(distinct x.id) as ids 
unwind ids as i 
match (y:Log {id:i}) return y;

我希望此查询的结果将按id分组,每行还有多个节点,其中每行包含共享id的所有节点。相反,它每行只返回一个节点,并且有多个相同id的行。如何将结果按ID分组?

示例:假设标签Log有五个节点。其中两个Log节点有id='abc',其中三个有id='123'。现在,我的查询返回五行,每行包含一个节点,但我希望它返回两行:一行包含id='123'的所有Log节点,另一行包含所有Log节点id='abc'

1 个答案:

答案 0 :(得分:1)

这将返回每行不同的id,以及具有该ID的节点:

MATCH (x:Log)
RETURN x.id AS id, COLLECT(x) as nodes;