查询具有相同类型的多个关系的节点

时间:2011-12-05 20:11:41

标签: neo4j

我刚刚开始了解Neo4J,我想到了一个问题,到目前为止我一直在做的阅读中没有看到答案。

我相信Node可能会多次连接到具有相同关系的另一个Node。

是否可以仅返回关系边数符合某些条件的节点?

示例:

朋友是一个节点。 戳是一种关系。

  • 朋友A戳了朋友B
  • 朋友A戳了朋友B
  • 朋友B戳了朋友C

我如何查询,所以只选择了朋友A,因为它多次戳同一个朋友?

如果重要;我将使用Java和Spring的数据图模块。

1 个答案:

答案 0 :(得分:1)

我假设你想要使用Cypher。谁不愿意,对吧?

Cypher没有与HAVING等效的SQL,所以你必须用你的宿主语言做一点。查询看起来像这样:

START friendA=node:person(name="Michael") 
MATCH friendA-[:POKED]->friendB 
RETURN friendB, count(*)

现在,使用生成的可迭代地图,从最终结果中排除所有地图,其中count(*)与您希望的不同。

这有意义吗?