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

如何返回与Neo4j有多个关系的节点?,neo4j,cypher,Neo4j,Cypher,我想返回一个“组”节点列表,其中每个节点都有多个“事物”节点。有一些重复的关系,所以我计算不同的东西。到目前为止,此查询似乎运行良好: 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 我希望能够可视化所有这些组节点以及属于它们的内容,因此我尝试了以下方法: MA

我想返回一个“组”节点列表,其中每个节点都有多个“事物”节点。有一些重复的关系,所以我计算不同的东西。到目前为止,此查询似乎运行良好:

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没有定义。有人能建议一种方法吗?谢谢

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:属于]->(g:Group)
。至少,这提高了图形模型的可读性和可理解性。此外,它还可以加快您的查询速度。

Hmmm我尝试了这个方法,但它返回0行(而第一个查询,当我要求它返回g时,给了我17行)。我还缺什么吗?也谢谢你的提示!如果指定了关系的方向性,请确保它指向正确的方向。我假设
-[r:allowned\u TO]->
是正确的,但您的数据可能颠倒了: