我正在neo4j中执行以下查询,它返回所有节点及其关系路径
查询
MATCH (p:MyNode {name : "Vivek"})-[r*1..2]->(f:MyNode) return p,[x in r | type(x)] as rel,f
结果
{vivek} ["knows"] {Rajesh} {vivek} ["knows","friendof] {Ezhil}
当这个查询正确执行并给出预期结果时,我在neo4j浏览器中收到了以下警告
以可变长度模式绑定到列表的关系是 已弃用。(将可变长度关系模式绑定到 变量('r')已弃用,将来将不受支持 版本。推荐的方法是将整个路径绑定到一个变量, 然后提取关系:MATCH p=(…)-[…]-(…)WITH*, 关系(p)AS r)
为了升级我的查询,我尝试了各种方法,但都无济于事。正在寻求这方面的帮助。
这是我按照帮助中的建议尝试过的匹配组合
MATCH p1 = (p:MyNode {name : "Vivek"})-[r*1..2]-(f:MyNode) WITH *, relationships(p1) AS r return p1
不支持具有相同名称的多个结果列(第1行, 列60(偏移量:59))“匹配p1=(p:MyNode{名称: “Vivek”})-[r*1..2]-(f:MyNode)WITH*,关系(p1)作为r返回 p1“
更新
当您在第二行中执行*时,您将获取第一个列表中生成的所有列,它们是p1、p、r、f。这就是为什么你不能再次将关系(p1)别名为r。 获取查询-1中的结果。你可以这样做-
MATCH path=(p:MyNode {name : "Vivek"})-[r*1..2]->(f:MyNode) return p,[x in relationships(path) | type(x)] as rel,f