修改密码

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

搜索
    中文

      别名系统

      别名是给 UQL 执行过程中产生的数据起名,从而实现数据调用。

      自定义别名

      通过关键词 as 进行的数据命名,需在数据产生时立即命名。一个数据可以被多次命名,且仅最后一次定义的别名有效。一个别名只能命名一次,即使原数据改名后,该别名也即刻作废,不能再被定义为其他数据。

      命名规则

      尽量避免与点、边的属性重名(若无法避免,必要时可使用系统别名 this 消除歧义),且满足:

      • 1 ~ 64 个字符
      • 不能以波浪号 '~' 开头
      • 不能包含反单引号 '`'
      • 不能使用系统保留字
      • (别名中含有除数字、字母、下划线之外的字符时,在 UQL 语句中使用时需要用反引号(`)包裹)

      定义举例

      别名中无特殊字符时:

      别名定义举例
      句中定义的别名
      find().nodes() as nodes nodes
      find().edges() as edges edges
      n().e().n() as paths paths
      with table(nodes.name, nodes.birthday) as user_list user_list
      with nodes.birthday as date_of_birth date_of_birth

      别名中有特殊字符时:

      with [1,2,3] as `my-list`
      return `my-list`
      

      数据产生但未定义别名,或定义了别名但从未进行调用,这些都可能影响 UQL 的执行效率。

      系统别名

      别名 调用位置 所指数据
      this 任意点、边过滤器 当前点/边
      prev_n 点、边模板 当前点/边的前一个点
      prev_e 点、边模板 当前点/边的前一个边

      this

      this 通常可以省略。但如果有歧义出现,即需要调用当前点、边的某个属性,而该属性和其他数据重名时,this 不能省略。

      以下代码中的点过滤器 {this.balance > 5000} 表示当前节点的属性 balance 大于 5000:

      ... as balance
      find().nodes({this.balance > 5000})
      

      由于点属性 balance 和第一句中定义的别名 balance 重名,如果点过滤器省略 this 变为 {balance > 5000},则表示别名 balance 大于 5000,这显然不是一个有效的点过滤条件。

      prev_n

      prev_n 只能在模板中使用,指路径中位于当前点、边左侧最近的一个点:

      • 单边、单点模板的 prev_n
      • 多边模板的 prev_n

      (1) 当 prev_n 不存在时(上图中红色问号标记的情况,即路径起点的 prev_n),与该 prev_n 有关的条件判断 ==!=>>=<<= 默认返回 true,其余条件判断的结果不可预期。
      (2) 当 prev_n 位于模板之外时,须具有被引用的属性。

      prev_e

      prev_e 只能在模板中使用,指路径中位于当前点、边左侧最近的一个边:

      • 单边、单点模板的 prev_e
      • 多边模板的 prev_e

      prev_e 不存在时(上图中红色问号标记的情况,即路径起点、第一条边的 prev_e),与该 prev_e 有关的条件判断 ==!=>>=<<= 默认返回 true,其余条件判断的结果不可预期。
      (2) 当 prev_e 位于模板之外时,须具有被引用的属性。

      别名的调用格式

      假设别名 nodesedgespathsmylistmypointmyobjectmyitem 分别指代类型为 NODE,EDGE,PATH,listpointobject 及其他类型的数据,它们在 UQL 中的调用格式为:

      调用格式
      调用内容 调用类型
      nodes NODE
      nodes.<property> 点的某个属性 该属性的类型(属性不存在时报错)
      nodes.@ 点的 schema string
      edges EDGE
      edges.<property> 边的某个属性 该属性的类型(属性不存在时报错)
      edges.@ 边的 schema string
      paths 路径 PATH
      mylist 整个列表 list
      mylist[n] 下标为 n 的元素 该元素的类型
      mylist[n1:n2] 由下标为 n1~n2 的元素构成的列表 list
      mylist[:n] 由下标为 0~n 的元素构成的列表 list
      mylist[n:] 由下标为 n~<长度-1> 的元素构成的列表 list
      mypoint 整个坐标 point
      mypoint.x 坐标 x double
      mypoint.y 坐标 y double
      myobject.a 键 a 该键的类型
      myitem 数据本身 该数据的类型

      UQL 句中不支持调用 TABLE 类型;RETURN 子句中别名调用的有效格式(返回格式)请参见本RETURN末尾的表格。

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