如何返回与Neo4j有多个关系的节点?

时间:2014-06-08 06:08:14

标签: neo4j cypher

我想返回一个' Group'具有多个“Thing”的节点。属于每个节点的节点。有一些重复的关系,所以我在计算DISTINCT的东西。到目前为止,此查询似乎工作正常:

MATCH (n:Thing)-[r:BELONGS_TO]-(g:Group)
WITH g, count(DISTINCT n) as thing_cnt
WHERE thing_cnt > 1
RETURN g, thing_cnt ORDER BY thing_cnt

我希望能够可视化所有这些群组节点以及属于它们的东西,所以我尝试了这个:

MATCH (n:Thing)-[r:BELONGS_TO]-(g:Group)
WITH g, count(DISTINCT n) as thing_cnt
WHERE thing_cnt > 1
RETURN n, g

但是我收到一个错误,告诉我n没有定义。有谁能建议这样做的方法?谢谢!

1 个答案:

答案 0 :(得分:0)

WITH条款需要包含n

MATCH (n:Thing)-[r:BELONGS_TO]-(g:Group)
WITH n, g, count(DISTINCT n) as thing_cnt
WHERE thing_cnt > 1
RETURN n, g

顺便说一句,如果可能的话,您应该始终指定关系的方向性。例如,(n:Thing)-[r:BELONGS_TO]->(g:Group)。至少,这提高了图模型的可读性和嗡嗡声可理解性。此外,它也可以加快您的查询速度。