求助match问题

nebula 版本:v3.6
nebula studio -v3.7
执行下面语句 错误
MATCH p1 = (v:STB)-[e:OPTICALCIRCUIT*1…4]-(v2:OLT) WHERE id(v) == ‘100242028’ MATCH p2 = (v2:OLT)-[e:RELAYLINK]-(v3:SWITCH) UNWIND [p1,p2] AS p RETURN nodes(p) AS nodes,relationships(p) AS links


以上是v.3.6.0 版本执行结果

这是v2 的版本 执行未报错

提供给你们看看 希望引起你们的重视 这应该是一个bug 希望你们看

您好,v3.6的报错应该是没有问题的, MATCH p1 = (v:STB)-[e:OPTICALCIRCUIT*1…4]-(v2:OLT) 中的e的类型是LIst, MATCH p2 = (v2:OLT)-[e:RELAYLINK]-(v3:SWITCH) 中的e的类型是Edge。

1 个赞


那个OPTICALCIRCUIT RELAYLINK 确实是2种边 同样的语句 在v2 版本中可执行 在v3版本中不可执行 数据都是一样的 如果要改造 改如何改造呢


从这里查询2种边 可以看出 这确实是边哈 就是在3.6 上上面 那种语法 match match的不行 在v3版本中

嗯,这里在 3.x 版本做了变更,在多跳的时候,e 返回的是 list,所以就不匹配了。
你这个感觉原来写得有点啰嗦,可以直接改成
MATCH p = (v:STB)-[e:OPTICALCIRCUIT*1…4]-(v2:OLT)-[e:RELAYLINK]-(v3:SWITCH) WHERE id(v) == ‘100242028’ RETURN nodes(p) AS nodes,relationships(p) AS links


按你写的 还是报错

改下 报错的地方就好了,这个我没写对,报错提示应该比较明显了。。