修改密码

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

修改昵称

当前昵称:
提交

申请证书

证书详情

Please complete this required field.

  • Ultipa Graph V4

Standalone

Please complete this required field.

Please complete this required field.

服务器的MAC地址

Please complete this required field.

Please complete this required field.

取消
申请
ID
产品
状态
核数
申请天数
审批时间
过期时间
MAC地址
申请理由
审核信息
关闭
基础信息
  • 用户昵称:
  • 手机号:
  • 公司名称:
  • 公司邮箱:
  • 地区:
  • 语言:
修改密码
申请证书

当前未申请证书.

申请证书
Certificate Issued at Valid until Serial No. File
Serial No. Valid until File

Not having one? Apply now! >>>

ProductName CreateTime ID Price File
ProductName CreateTime ID Price File

No Invoice

v4.5
搜索
    v4.5

      找子图

      概述

      使用语句subgraph([<path_template1>, <path_template2>, ...])可以描述并搜索由多个路径模板组成的子图。这些路径模板通常有相交的点或边,通过重复使用别名在子图中共享元素。

      语法

      • 语句别名: N/A
      • 不支持为子图中的路径模板声明别名,但可以在单点模板n()和单边模板e()中声明别名。

      subgraph([
        <path_template1>, 
        <path_template2>, 
        ...
      ])
      

      示例图集

      在一个空图集中,逐行运行以下语句,创建示例图集:

      create().node_schema("user").node_schema("card").edge_schema("owns").edge_schema("transfers")
      insert().into(@user).nodes([{_id:"user1"}, {_id:"user2"}, {_id:"user3"}, {_id:"user4"}, {_id:"user5"}])
      insert().into(@card).nodes([{_id:"card14"}, {_id:"card22"}, {_id:"card37"}, {_id:"card45"}, {_id:"card63"}, {_id:"card65"}])
      insert().into(@owns).edges([{_from:"user1", _to:"card45"}, {_from:"user2", _to:"card65"}, {_from:"user3", _to:"card37"}, {_from:"user4", _to:"card14"}, {_from:"user4", _to:"card22"}, {_from:"user5", _to:"card63"}])
      insert().into(@transfers).edges([{_from:"card45", _to:"card14"}, {_from:"card65", _to:"card14"}, {_from:"card63", _to:"card14"}, {_from:"card65", _to:"card37"}, {_from:"card22", _to:"card65"}, {_from:"card37", _to:"card22"}, {_from:"card22", _to:"card37"}, {_from:"card22", _to:"card14"}])
      

      单个共享元素

      查找接收过user1user2直接转账的用户:

      subgraph([
        n({_id == "user1"}).e().n({@card}).re({@transfers}).n({@card} as c).e().n({@user} as u),
        n({_id == "user2"}).e().n({@card}).re({@transfers}).n(c)
      ])
      return u._id
      

      结果:

      u._id
      user4

      多个共享元素

      查找不同账户间的3步单向交易环路,并返回账户所有者信息:

      subgraph([
        n({@user} as u1).e().n({@card} as c1),
        n({@user && _id > u1._id} as u2).e().n({@card} as c2),
        n({@user && _id > u2._id} as u3).e().n({@card} as c3),
        n(c1).re().n(c2).re().n(c3).re().n(c1)
      ])
      return table(u1._id, u2._id, u3._id)
      

      结果:

      u1._id u2._id u3._id
      user2 user3 user4

      查找两张卡片,要求都向card14card37发送过交易请求,并且两张卡片之间存在直接交易。

      subgraph([
        n({@card} as c1).e().n({@card} as c2),
        n(c1 as c11).re().n({_id == "card14"}).le().n(c2 as c22),
        n(c11).re().n({_id == "card37"}).le().n(c22)
      ])
      where c1._id > c2._id
      return table(c11._id, c22._id)
      

      结果:

      c11._id c22._id
      card65 card22

      如需在subgraph()中的不同路径模板里多次引用一个别名,则必须在每次引用后重命名该别名,以保持其作用域。这能确保该别名在多个模板中可用,避免了潜在冲突或超出作用域的报错。

      请完成以下信息后可下载此书
      *
      公司名称不能为空
      *
      公司邮箱必须填写
      *
      你的名字必须填写
      *
      你的电话必须填写
      *
      你的电话必须填写