修改密码

请输入密码
请输入密码 请输入8-64长度密码 和 email 地址不相同 至少包括数字、大写字母、小写字母、半角符号中的 3 个
请输入密码
提交

修改昵称

当前昵称:
提交

搜索
v4.0
    v4.0

    展开

    命令、参数

    查询一个起点及其 1~KHop 邻居节点之间的所有边,可以对最大深度、邻居点(非起点)、边进行多种过滤,并按照 K = 1、2、... 的顺序先后返回由边的起点、边、边的终点构成的一步路径。

    与 K 邻查询相同,展开也是一种 BFS(广度优先)方式的查询,是图计算与分析领域中的一个很常用的手段,用于观察某一个实体周围的层层关系,快速检索并获取数据。

    语法:

    • 命令:spread()
    • 必选参数:src()depth()
    • 全部参数:(见下表)
    • 语句别名类型:PATH
    参数 类型 规范 描述 参数别名类型
    src() filter / 路径起点的过滤条件;多个点满足条件时会报错 NODE
    depth() int >0 展开的最大深度 不支持自定义别名
    node_filter() filter / 邻居点(非 src)的过滤条件 不支持自定义别名
    edge_filter() filter / 所有边的过滤条件 不支持自定义别名
    direction() string left, right 规定边的方向 不支持自定义别名
    limit() int -1 或 >=0 展开单次执行时返回结果的条数,-1 表示返回所有结果 不支持自定义别名

    1~N 步展开

    示例:展开银行卡 CA001 的 3 步以内的边,以一步路径的形式返回 10 条结果并携带全部信息

    spread().src({_id == "CA001"}).depth(3) as p
    limit 10 
    return p{*}
    

    邻居点过滤展开

    示例:展开银行卡 CA001 的 3 步以内的边,要求邻居点不是银行卡,以一步路径的形式返回 10 条结果并携带全部信息

    spread().src({_id == "CA001"}).depth(3)
      .node_filter({!@card}) as p
    limit 10 
    return p{*}
    

    边过滤展开

    示例:展开银行卡 CA001 的 3 步以内的边,要求边不是转账边,以一步路径的形式返回 10 条结果并携带全部信息

    spread().src({_id == "CA001"}).depth(3)
      .edge_filter({!@transfer}) as p
    limit 10 
    return p{*}
    

    右向边展开

    示例:展开银行卡 CA001 的 3 步以内的边,要求边均为右向边,以一步路径的形式返回 10 条结果并携带全部信息

    spread().src({_id == "CA001"}).depth(3)
      .direction(right) as p
    limit 10 
    return p{*}
    

    左向边展开

    示例:展开银行卡 CA001 的 3 步以内的边,要求边均为左向边,以一步路径的形式返回 10 条结果并携带全部信息

    spread().src({_id == "CA001"}).depth(3)
      .direction(left) as p
    limit 10 
    return p{*}
    

    单次查询数量限制

    示例:展开银行卡 CA001、CA002 的 3 步以内的边,以一步路径的形式各返回 20 个边,携带全部信息

    uncollect ["CA001","CA002"] as n
    spread().src({_id == n}).depth(3)
      .limit(20) as p
    return p{*}
    
    请完成以下信息后可下载此书
    *
    公司名称不能为空
    *
    公司邮箱必须填写
    *
    你的名字必须填写
    *
    你的电话必须填写
    *
    你的电话必须填写