修改密码

请输入密码
请输入密码 请输入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(转账)关联金额、转账时间等属性。

      每个点、边数据默认携带以下系统属性。系统系统属性不与任何schema关联,无需用户手动创建,也不能删除。

      系统属性 数据类型 描述
      _id string,最大长度128字节 点的唯一标识符
      _uuid uint64 点的唯一标识符
      _uuid uint64 边的唯一标识符
      _from _id 边起点的_id
      _to _id 边终点的_id
      _from_uuid _uuid 边起点的_uuid
      _to_uuid _uuid 边终点的_uuid

      在每个schema中,用户可创建自定义属性来描述和记录点边特征。自定义属性支持的数据类型见创建类型

      嬴图GQL使用@<schema>.<property>对图模型或元数据中的属性进行过滤。嬴图数据库的Demi-Schema特性也支持在过滤器中忽略@<schema>.,直接指定属性名。

      属性命名规则

      属性(自定义属性)由用户命名,规则如下:

      • 2~64个字符
      • 不能以波浪号(~)开头
      • 不能包含反单引号(`)
      • 不能与系统保留字(包括系统属性、系统表名、系统别名等)重名

      与同一个schema关联的属性不能重名,但与不同schema关联的属性可以重名。

      属性名称中含有数字、字母、下划线以外的字符时,在嬴图GQL语句中使用时需要用一对单反引号(`)包裹。

      find().nodes({@user.`年龄` == 20}) as nodes return nodes{*} limit 10
      

      查看属性

      返回的表名:_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>)
      

      创建属性

      // 在当前图集中为一个指定点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()
      
      // 在当前图集中同时为多个点、边schema创建属性
      create()
        .node_property(@<schema>, "<name>", <type?>, "<desc?>")
        .node_property(@*, "<name>", <type?>, "<desc?>")
        .edge_property(@<schema>, "<name>", <type?>, "<desc?>")
        .edge_property(@*, "<name>", <type?>, "<desc?>")
        ...
      

      关于参数encrypt()

      • 使用AES128算法加密存储属性
      • 目前仅支持加密string和text类型的属性
      • 忽略此参数表示不加密

      创建属性时,如果不声明数据类型,默认使用string。目前支持的属性数据类型有:

      数据类型
      描述
      int32 占4字节,有符号
      uint32 占4字节,无符号
      int64 占8字节,有符号
      uint64 占8字节,无符号
      float 占4字节,6位有效数字
      double 占8字节,15位有效数字
      decimal 需指定精度(范围1~65)和标度(范围0~30)[1],例如'decimal(5,10)',设置时必须用引号包裹
      string 创建属性时的默认数据类型,最大支持60000字节
      text 最大长度不限
      datetime 有效格式包括yyyy-mm-dd hh:mm:ssyyyy-mm-dd hh:mm:ss.ssssss,有效存储范围为1000-01-01 00:00:00.000000到9999-12-31 23:59:59.499999,以uint64存储
      timestamp 有效格式包括yyyy-mm-dd hh:mm:ssyyyy-mm-ddyyyymmddhhmmssyyyymmdd,会被换算为从格林威治时间1970年1月1日0时开始到该时间值的秒数,以uint32存储;其时区须通过SDK的RequestConfig进行设置
      point 地理坐标、2D坐标,坐标值精度为double
      blob 二进制的文件、图片、音频、视频等,实际长度受服务器max_rpc_msgsize(默认4M)设置的影响
      list 具体可设置为int32[]、int64[]、uint32[]、uint64[]、float[]、double[]、string[]、text[]、datetime[]和timestamp[],设置时必须用引号包裹
      set 具体可设置为set(int32)、set(int64)、set(uint32)、set(uint64)、set(float)、set(double)、set(string)、set(text)、set(datetime)和set(timestamp),设置时必须用引号包裹

      [1]decimal存储的是准确的数字,因此需指定精度和标度。精度是所有数字的位数,包括整数与小数,不包括小数点;标度是小数点后的数字位数。

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

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

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

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

      创建list或set的某个子类型以及decimal时,<type>需用引号包裹。

      如果属性已存在:

      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"})
      

      删除属性

      删除一个属性的同时会删除与其相关的索引、全文索引和引擎索引(LTE的属性)。

      语法:

      // 从当前图集中删除一个指定点schema的一个属性
      drop().node_property(@<schema>.<property>)
      
      // 从当前图集中删除所有点schema的一个属性(如有)
      drop().node_property(@*.<property>)
      
      // 从当前图集中删除一个指定边schema的一个属性
      drop().edge_property(@<schema>.<property>)
      
      // 从当前图集中删除所有边schema的一个属性(如有)
      drop().edge_property(@*.<property>)
      
      // 从当前图集中同时删除多个点、边schema的属性
      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)
      

      系统属性_id_uuid_from_to_from_uuid_to_uuid不允许删除。

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