命令、参数
将路径模板作为 K 邻查询命令的参数进行 K 邻查询。K 邻模板查询比实现同等功能的路径模板查询效率更高。
语法:
- 命令:
khop()
- 参数:路径模板,且遵循以下规定:
- 起始点模板
n()
的过滤条件不能为空 - 多边模板的步数
[<>]
只能是确定值,即[N]
- 不支持任何形式的步间过滤,无论是使用自定义的参数别名还是使用系统别名
prev_n
、prev_e
- 起始点模板
- 语句别名类型:NODE
一般用法
示例:查找经过 2 步最短转账路径向顾客 CU001 的银行卡进行转账的银行卡,返回持有这些银行卡的顾客,携带全部信息
khop()
.n({_id == "CU001"}).re().n({@card})
.le({@transfer})[2].n({@card})
.le().n({@customer}) as n
return n{*}
分析:本例查询的是最短路径的终点,可以看成 K 邻问题;且由于路径中的点、边的过滤条件不尽相同,因此使用 khop()
命令配合模板进行查询。
示例:参考下图所示的路径结构,查找顾客 CU013、CU020 的银行卡所使用的手机号还被哪些其他银行卡所使用,统计这些卡的数量
khop()
.n({_id in ["CU013","CU020"]}).re().n({@card})
.re().n({@phone})
.le().n({@card}) as n
return count(n)