遍历Cypher中的其他节点

时间:2015-10-24 16:45:59

标签: neo4j cypher

我必须遗漏一些东西,但我有一个理论并且想弄清楚为什么我在Cypher中找不到其他小组主题的其他小组。

MATCH(g:Group{group_slug:"um-mobile-apps"})<-[:TOPIC_OF]-(t:Topic)-[:TOPIC_OF]->(og:Group)
WHERE NOT g.group_slug = 'um-mobile-apps'
RETURN og.group_name

它应返回另一个匹配2个主题的组,但只有在我删除NOT条件时它才会返回。是因为Topic节点指向该组的方向而不是另一种方式?类似于:(g)-[:TOPIC_OF]->(t)<-[:TOPIC_OF]-(og)?

目标是找到与起始节点共享相同主题的所有组。奖励积分如果有办法按大多数共同主题排名。谢谢!

1 个答案:

答案 0 :(得分:0)

您的查询应该遵循过滤器启动节点。

MATCH(g:Group{group_slug:"um-mobile-apps"})<-[:TOPIC_OF]-(t:Topic)-[:TOPIC_OF]->(og:Group)
WHERE NOT og.group_slug = "um-mobile-apps"
RETURN og.group_name

对于得分,它将类似于

MATCH(g:Group{group_slug:"um-mobile-apps"})<-[:TOPIC_OF]-(t:Topic)-[:TOPIC_OF]->(og:Group)
WHERE NOT og.group_slug = "um-mobile-apps"
RETURN og.group_name, count(t)
ORDER BY count(t) DESC