【发布时间】:2015-06-29 17:52:06
【问题描述】:
我有一个 neo4j 数据库,其节点遵循此结构
[a:article_id] -[r:about_place]-> [l:location]
现在我想找到 article_id、location 对,其中 location 有很多传入关系(比如 > 4)
MATCH ()-[r:about_place]->(n)
WITH n,count(r) as rel_cnt
where rel_cnt > 4
RETURN n.name,rel_cnt;
这行得通,我得到了我需要的位置列表。
但我现在也想要来自该关系的所有传入文章,比如中国指向它的 5 个文章 ID。
类似的,
MATCH (a)-[r:about_place]->(n)
WITH a,n,count(r) as rel_cnt
where rel_cnt > 4
RETURN a.title,n.name,rel_cnt;
但这会返回 0 行。我猜是因为现在在 group 子句中使用了 (a,n) 组合,这使得每行中的 count(r) 始终为 1。 我在一次谈话中看到这是 count(*) 子句默认的工作方式。
我认为一个解决方案是将这些结果链接起来并进行新的查询,但对于我的生活,我无法弄清楚如何。 任何想法或链接也会有所帮助。
【问题讨论】: