【问题标题】:neo4j node aggregate filterneo4j 节点聚合过滤器
【发布时间】:2017-10-08 19:26:24
【问题描述】:

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

【问题讨论】:

    标签: neo4j cypher


    【解决方案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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-29
      • 2015-09-17
      • 2014-02-02
      相关资源
      最近更新 更多