我有一个节点类型 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;