修改密码

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

搜索
    中文

      属性

      属性 property 是 schema 的组成成分,用来描述图中实体、关系的数据维度。比如 点schema card(银行卡)可以由卡号、余额、开卡时间等点属性构成;边schema transaction(转账)可以由金额、转账时间等边属性构成。

      以下系统属性默认存在,不需要创建,也不能删除:

      • 点:_id_uuid
      • 边:_uuid_from_to_from_uuid_to_uuid

      每个 schema 中可以创建多个自定义属性,支持的类型见数据类型

      本节中的 @<schema>@<schema>.<property> 表示对图模型中的 schema、属性进行过滤,不同于在过滤器中使用 @<schema>@<schema>.<property> 对元数据的 schema、属性进行过滤,请与《过滤器|操作符》-《条件判断符》-《Schemna 判断》中关于符号 @ 的使用加以区分。

      命名规则

      属性由开发者自定义名称,一个图集中同一个 schema 的属性不能互相重名,但一个 schema 的属性可以和另一个 schema 的属性重名。

      • 2 ~ 64 个字符
      • 不能以波浪号 '~' 开头
      • 不能包含反单引号 '`'
      • 不能与《背景知识》中列出的系统属性、系统表名、系统别名(保留字)重复
      • (属性名中含有除数字、字母、下划线之外的字符时,在 UQL 语句中使用时需要用反引号(`)包裹)

      查看属性

      返回的表名:_nodeProperty 和/或 _edgeProperty

      返回的表头:name|type|lte|read|write|schema|description|extra|encrypt(属性的名称、数据类型、是否 LTE、是否可读、是否可写、所属 schema、描述、decimal 的精度和标度、加密算法)

      语法:

      // 查看当前图集中的所有 schema 的属性(分为点、边两个表)
      show().property() 
      
      // 查看当前图集中的所有 点schema 的属性
      show().node_property()
      
      // 查看当前图集中的所有 边schema 的属性
      show().edge_property()
      
      // 查看当前图集中的某个 点schema 的属性
      show().node_property(@<schema>)
      
      // 查看当前图集中的某个 边schema 的属性
      show().edge_property(@<schema>)
      

      创建属性

      创建属性时如果不声明数据类型,则默认为 string;使用参数 encrypt() 时表示使用 AES128 算法加密存储该属性(当前仅支持 stringtext),如不使用则表示不加密。

      语法:

      // 在当前图集中为某个 点schema 创建一个点属性
      create().node_property(@<schema>, "<name>", <type?>, "<desc?>").encrypt()
      
      // 在当前图集中为所有 点schema 创建一个点属性
      create().node_property(@*, "<name>", <type?>, "<desc?>").encrypt()
      
      // 在当前图集中为某个 边schema 创建一个边属性
      create().edge_property(@<schema>, "<name>", <type?>, "<desc?>").encrypt()
      
      // 在当前图集中为所有 边schema 创建一个边属性
      create().edge_property(@*, "<name>", <type?>, "<desc?>").encrypt()
      
      // 混合以上四种方法同时创建多个点/边属性
      create()
        .node_property(@<schema>, "<name>", <type?>, "<desc?>")
        .node_property(@*, "<name>", <type?>, "<desc?>")
        .edge_property(@<schema>, "<name>", <type?>, "<desc?>")
        .edge_property(@*, "<name>", <type?>, "<desc?>")
        ...
      

      示例:创建 @course 点的属性 title 和 description,为所有边创建属性 time

      create().node_property(@course, "title", "", "course name")
        .node_property(@course, "description")
        .edge_property(@*, "time", datetime)
      

      分析:省略 <type> 但其后的 <desc> 不省略时,需用空引号为 <type> 占位。

      示例:创建 @forex 点的属性 fRate、tags 和 records

      create().node_property(@forex, "fRate", "decimal(65,30)")
        .node_property(@forex, "tags", "set(string)")
        .node_property(@forex, "records", "string[]")
      

      分析:创建 listset 的某个子类型以及decimal 时,<type> 需用引号包裹。

      示例:创建 @course 点的属性 title,已知该属性已经存在

      create().node_property(@course, "title")
      

      Property exists!
      

      分析:如使用前缀 TRY try create().node_property(@course, "title"),则无返回。

      修改属性(名称、描述)

      属性的类型不支持修改。

      语法:

      // 修改当前图集中的某个 点schema 的某个属性的名称、描述
      alter().node_property(@<schema>.<property>)
        .set({name: "<new_name?>", description: "<new_desc?>"})
      
      // 修改当前图集中的所有 点schema 的某个属性(如有)的名称、描述
      alter().node_property(@*.<property>)
        .set({name: "<new_name?>", description: "<new_desc?>"})
      
      // 修改当前图集中的某个 边schema 的某个属性的名称、描述
      alter().edge_property(@<schema>.<property>)
        .set({name: "<new_name?>", description: "<new_desc?>"})
      
      // 修改当前图集中的所有 边schema 的某个属性(如有)的名称、描述
      alter().edge_property(@*.<property>)
        .set({name: "<new_name?>", description: "<new_desc?>"})
      

      示例:将 @card 的属性 sum 改为 balance

      alter().node_property(@card.sum)
        .set({name: "balance"})
      

      示例:将所有边的属性 time 改为 createTime

      alter().edge_property(@*.time)
        .set({name: "createTime"})
      

      删除属性

      除系统属性 _id_uuid_from_to_from_uuid_to_uuid 不允许删除之外,schema 中的其它属性均可以删除。删除一个属性将同时删除与其相关的索引、全文索引、引擎索引(LTE的属性)。

      语法:

      // 从当前图集中删除某个 点schema 的某个属性
      drop().node_property(@<schema>.<property>)
      
      // 从当前图集中删除所有 点schema 的某个属性(如有)
      drop().node_property(@*.<property>)
      
      // 从当前图集中删除某个 边schema 的某个属性
      drop().edge_property(@<schema>.<property>)
      
      // 从当前图集中删除所有 边schema 的某个属性(如有)
      drop().edge_property(@*.<property>)
      
      // 混合以上四种方法同时删除多个点/边属性
      drop()
        .node_property(@<schema>.<property>)
        .node_property(@*.<property>)
        .edge_property(@<schema>.<property>)
        .edge_property(@*.<property>)
        ...
      

      示例:删除 @card 点的属性 branch 以及所有边的属性 time

      drop().node_property(@card.branch).edge_property(@*.time)
      

      示例:删除 @default 边的属性 test

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