如何对多层查询边r的属性加条件限制
发布于 5 年前 作者 lijian 2755 次浏览 来自 问答

(n)-[r*1…3]-(m) return r 该语句如何对边r的属性加条件判断,比如r.age>18,求大神解答

6 回复

(n)-[r*1…3]-(m) where exists(r.age) and r.age>18 return r 大概是这样吧,语法你看着有问题改改

额,如果是这么简单就好了,在多层查看的时候,返回的r是collection<Relationship> 是一个集合,并不是Relationship对象,所以不能直接r.age。需要 with reduce as 三个连用才可以

@lijian 用路径查询以及filter函数吧

你的这种方法,能方便说具体如何实现的吗? 目前我用的是 match (n)-[r*1…3]-(m) with reduce(temp=0,data in r | data.age) as age ,r as r where age>18 return r 不过在java循环里特别慢。效率很差

我用的 org.neo4j.cypher.javacompat.ExecutionResult 接收的,while循环的时候特别慢

where all (edge in r where edge.age >18 ) 不谢!手动滑稽~

回到顶部