修改密码

请输入密码
请输入密码 请输入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

搜索
    中文

      RETURN 返回

      格式、参数

      RETURN 可以对数据流进行函数运算,将多个返回值(数据列)组装到一起返回给用户。返回值中有非同源列时,按照同源列长度的最小值对各列进行裁剪(或不裁剪  V4.1 )。

      语法:

      • 格式:return <column1> as <alias1>, <column2> as <alias2>, ...
      • 参数:(见下表)
      • 受影响列:<column> 及其所有同源列
      名称 类型 规范 描述
      <column> NODE,EDGE,PATH,ATTR,ARRAY,TABLE / 返回值,多个返回值可以为同源列、非同源列
      <alias> string 同自定义别名的命名规范 返回值的别名,可省略

      详解

      find().nodes() as n1 limit 5
      n(3).e()[2].n(as n2) as path
      return n1, pnodes(path), distinct(n2.color)
      

      上面 UQL 代码中的 RETURN 子句中有三个返回值,类型分别为 NODE,ARRAY,ATTR;其中第一列和后两列非同源,使用 V4.0 版引擎时不会返回红色虚线以下的部分:

      在 RETURN 子句中对某列进行去重操作时,不影响其同源列的长度。RETURN 子句通常出现在 UQL 语句的末尾,个别情况时其后可以出现 ORDER BY、LIMIT、SKIP。

      关于 RETURN 子句中如何指定 NODE、EDGE、PATH 所携带的属性,请阅读《查询》-《返回值》一章。

      返回 NODE

      示例:返回 10 个点的全部属性值

      find().nodes() as n
      limit 10
      return n{*} 
      

      示例:获取 50 个 @card 或 @customer 点,携带 balance、level

      find().nodes({@card || @customer}) as n
      limit 50
      return n{balance, level}
      

      分析:@card 点有 balance、level 两种属性,@customer 点只有 level。返回值仅携带其自身具有的属性。

      返回 EDGE

      示例:返回 50 条边,不携带任何自定义属性

      find().edges() as e
      limit 50
      return e
      

      返回 PATH

      示例:返回 10 条三步路径,不携带点、边的任何自定义属性

      n().e()[3].n() as p
      limit 10
      return p 
      

      示例:返回 10 条顾客的银行卡之间的一步转账路径,携带 balance 和 time

      n({@customer}).e().n({@card})
        .e().n({@card})
        .e().n({@customer}) as p
      limit 10
      return p{balance}{time} 
      

      分析:返回值仅携带其自身具有的属性。@card 点将携带 balance,@transfer 边将携带 time,所有点、边均携带系统属性及 schema。

      示例:返回 10 条顾客的银行卡之间的一步转账路径,所有点携带全部属性,所有边不携带任何自定义属性

      n({@customer}).e().n({@card})
        .e().n({@card})
        .e().n({@customer}) as p
      limit 10
      return p{*}{} 
      

      示例:返回 10 条顾客的银行卡之间的一步转账路径,所有点、边携带全部属性

      n({@customer}).e().n({@card})
        .e().n({@card})
        .e().n({@customer}) as p
      limit 10
      return p{*}
      

      返回 ATTR

      示例:获取 100 条边,返回它们的 schema 名称、amount(如有)

      find().edges() as e
      limit 100
      return e.@, e.amount
      

      分析:没有 amount 的边在返回值 e.amount 中将返回空值。

      示例:统计所有银行卡余额的最大值

      find().nodes({@card}) as n
      return max(n.balance)
      

      返回 ARRAY

      示例:获取 10 个银行卡,将卡号聚合为数组并返回

      find().nodes({@card}) as n
      limit 10
      return collect(n._id)
      

      返回 TABLE

      示例:获取 10 条转账边,将边的起点卡号、终点卡号、转账金额合并为表格并返回

      n(as n1).e({@transfer} as e).n(as n2)
      limit 10
      return table(n1._id, n2._id, e.amount)
      
      请完成以下信息后可下载此书
      *
      公司名称不能为空
      *
      公司邮箱必须填写
      *
      你的名字必须填写
      *
      你的电话必须填写
      *
      你的电话必须填写