NebulaGraph中properties($^)与src(edge)的用法差异咨询
NebulaGraph中
properties($^)与src(edge)的用法差异 问题场景
从VID为"2"的顶点出发,反向遍历follow边时,使用properties($$)和src(edge)查询得到的结果不同,执行语句及结果如下:
执行语句1(使用properties($$))
(root@nebula) [basketballplayer]> go from "2" over follow reversely yield properties($$) +-------------------+ | properties($$) | +-------------------+ | {name: "A"} | +-------------------+
执行语句2(使用src(edge))
(root@nebula) [basketballplayer]> go from "2" over follow reversely yield src(edge) +------------+ | src(EDGE) | +------------+ | "1" | +------------+
核心用法差异
src(edge):返回当前边的原始起始顶点VID,不受遍历方向影响。反向遍历场景下,这条边原本的起始顶点是"1",因此直接输出该顶点的ID字符串。properties($^):返回遍历路径中锚点顶点(即查询的出发顶点)的属性集合。注意示例中使用的properties($$)是返回遍历到达的目标顶点属性,而$^、$$的指向会随遍历方向动态切换:- 正向遍历:
$^指向出发顶点,$$指向到达顶点 - 反向遍历:
$^指向原边的到达顶点(即本次查询的出发顶点"2"),$$指向原边的起始顶点(即"1"),所以properties($$)返回的是"1"顶点的属性。
- 正向遍历:
额外说明:src(edge)和dst(edge)永远绑定边本身的原始起始、目标顶点,不会随遍历方向改变而变化;而$^、$$是动态指向遍历路径中的前后顶点,方向反转时指向也会反转。
内容的提问来源于stack exchange,提问作者黄凤仙
相关产品推荐
相关产品推荐

