Neo4j列出了共同节点最多的节点

时间:2015-07-02 13:40:58

标签: neo4j cypher

不太确定这是否属于Neo4j的范围,所以如果我只是想做太多话,请告诉我。

使用2种类型的节点(UserItem)以及1种关系类型(LIKES)生成图表。我尝试按照其他用户喜欢的项目数量顺序列出用户节点。例如,User1喜欢10个项目,这10个项目都被其他用户所喜欢;但是,所有其他用户只喜欢这一项,因此列表看起来像

User1, 10
User2, 1
User3, 3
...

我的想象力是创建一个看起来像

的查询
MATCH (u:User)-[e:LIKES]->(i:Item)<-e:LIKES]-(u2:User)
WITH u, count(u-->i<--u2) as num_common
RETURN u, num_common

显然count(u-->i<--u2)不起作用,但我对它应该说什么感到茫然。

这在Neo4j中是否可行?

1 个答案:

答案 0 :(得分:2)

我想出了怎么做。我将查询简化为

MATCH (u:User)-[e:LIKES]->(i:Item)<-[e2:LIKES]-(u2:User)
RETURN u, count(i)
ORDER BY count(i) DESC