0

我有一个节点类型 c 的子图,它与 t1 和 t2 有关系。节点 t1 与 w1 和 w2 有关系。节点 t2 与 w1 有关系。

我想用 cypher 查询的是从节点 c 返回具有 2 个或更多 t 节点相关的 w 节点。即仅w1。

显然你不能在 WHERE 子句中聚合

START c=node(7)  
MATCH (c)-[:T_TO]-(t)-[:W_TO]-(w)
WHERE COUNT(t) >= 2
RETURN w.WName;

也许以另一种方式看待它,这也不起作用,因为我只想要只与 t1 和 t2 相关的 w ...?

START c=node(7), t1=node(10), t2=node(8)
MATCH (c)-[:T_TO]-(t)-[:W_TO]-(w)
WHERE t in [t1, t2]
RETURN t, w.WName;

更新 任何想要第二个的人,这都有效:

START c=node(7), t1=node(8), t2=node(10) 
MATCH (c)-[:T_TO]-(t1)-[:W_TO]-(w),(c)-[:T_TO]-(t2)-[:W_TO]-(w) 
RETURN w.WName;
4

1 回答 1

1

怎么样

START c=node(7)  
MATCH (c)-[:T_TO]-(t)-[:W_TO]-(w)
WITH COUNT(t) as tCount,w
WHERE tCount >= 2
RETURN w.WName;
于 2013-07-19T03:45:12.617 回答