修改密码

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

v5.0
搜索
    v5.0

      运算符

      所有运算符

      分类
      运算符
      属性引用 .
      逻辑运算符 ANDORXORNOT
      算术运算符 +-*/%^
      比较运算符 =<>(或!=),><>=<=, IN
      赋值运算符 =
      字符运算符 字符串联||(或+
      字符匹配CONTAINS
      规范化谓词IS NORMALIZED, IS NOT NORMALIZED
      列表运算符 构建列表[]
      访问元素[]
      判断包含关系IN
      列表串联||
      路径运算符 构建路径PATH[]
      路径拼接||
      记录运算符 构建记录RECORD{}
      引用字段.
      去重 DISTINCT
      Exists谓词 EXISTS
      Null谓词 IS NULLIS NOT NULL
      值类型谓词 IS TYPEDIS NOT TYPED
      标签谓词 IS LABELEDIS NOT LABELED:
      起/终谓词 IS SOURCE OF, IS NOT SOURCE OF, IS DESTINATION OF, IS NOT DESTINATION OF
      有向谓词 IS DIRECTED, IS NOT DIRECTED
      布尔值谓词 IS TRUE, IS FALSE
      优先级控制 ()

      属性引用

      .(句点)可用来引用图元素的属性。

      MATCH (n)
      RETURN n._id LIMIT 10
      

      逻辑运算符

      AND

      将两个或多个条件结合在一起,当所有条件判断为真时,整个表达式判断为真。

      AND运算符的真值表:

      AND

      本条查询返回age大于30,且incomeGroup为4的用户:

      MATCH (n:User)
      WHERE n.age > 30 AND n.incomeGroup = 4
      RETURN n
      

      OR

      将两个或多个条件结合在一起,只需满足其中一个条件,整个表达式判断为真。

      OR运算符的真值表:

      OR

      本条查询返回age大于30,或incomeGroup为4的用户:

      MATCH (n:Person)
      WHERE n.age > 30 OR n.incomeGroup = 4
      RETURN n
      

      XOR

      将两个或多个条件结合在一起,每次对两个条件执行逻辑运算。若表达式只有两个条件,则有且仅有一个条件为真时,整个表达式判断为真。若两个条件均为真或均为假,则最终结果为假。若表达式涉及多个条件,XOR先判断前两个条件,并将判断结果与下一个条件进行比较,以此类推,直至对全部条件判断完毕。

      XOR运算符的真值表:

      XOR

      本条查询返回age大于30或incomeGroup为4的用户,但会剔除同时满足两个条件的用户:

      MATCH (n:User)
      WHERE n.age > 30 XOR n.incomeGroup = 4
      RETURN n
      

      NOT

      对条件进行否定,当条件为假时,返回结果为真,反之亦然。

      NOT运算符的真值表:

      NOT

      本条查询返回age不等于30的用户:

      MATCH (n:Person)
      WHERE NOT n.age = 30
      RETURN n
      

      算术运算符

      对数值进行算术运算。GQL支持以下算术运算符:

      • 加:+
      • 减:-
      • 乘:*
      • 除:/
      • 取余:%
      • 取幂:^

      RETURN (2+8)%3
      

      结果:

      (2+8)%3
      1

      比较运算符

      比较两个值或表达式,返回真或假。GQL支持以下比较运算符:

      • 等于:=
      • 不等于:<>(或!=
      • 大于:>
      • 小于:<
      • 大于等于:>=
      • 小于等于:<=
      • 属于:IN(参看判断包含关系

      可比较的值

      在GQL中,如果两个值可以使用比较运算符进行有意义的评估,则它们被视为可比较的值。可比较的值包括两类:

      • 本质上可比较的值:指类型相同的值(如两个字符串、两个日期)或同一类别中紧密相关的类型(如整数与浮点数)。这些值可以直接进行比较。
      • 通用可比较的值:指属于不同类别但仍可通过隐式类型转换进行比较的值。例如,将整数12与字符串"13ab"进行比较时,系统会尝试先将字符串转换为数字后再进行评估。

      比较数值

      RETURN 30.1 > 30 // true
      

      比较文本值

      通过两个文本中第一个不同的字符(从左到右)决定比较结果。字符的比较依据其Unicode值进行。

      RETURN "campus" < "camera" // false
      

      这个查询返回假,因为它们的首个不同字符分别是pe, 而p的Unicode值(112)大于e的Unicode值(101)。

      比较时间值

      时间值在GQL中被视为数值处理,因为时间是以秒、小时、天和年等单位衡量的。GQL在比较两个时间值时,基于它们之间的持续时间(即时间点之差)进行判断:若持续时间为0,则两者相等;若为负,则左值较小;否则,左值较大。

      // p1.birthday is 1987-10-01, p2.birthday is 1987-10-02
      MATCH (p1 {name: "Alex"}), (p2 {name: "Joy"})
      RETURN p1.birthday < p2.birthday // true
      

      比较列表值

      如果两个列表包含相同的元素,并且顺序完全相同,则它们相等。

      RETURN [1,2,3] = [1,2,3] // true
      

      RETURN [] = [] // true
      

      RETURN [1,2,3] = [1,3,2] // false
      

      比较记录值

      如果两个记录具有相同的字段和相同的值,则它们相等。

      RETURN {a:1, b:2} = {a:1, b:2} // true
      

      RETURN {a:1, b:2} = {a:2, b:2} // false
      

      RETURN {a:1} = {b:1} // false
      

      比较路径

      路径类似于列表,因为路径本质上是点和边组成的序列。

      MATCH p1 = (:User {name: "mochaeach"})-[:Joins]->(:Club {_id: "C02"})
      MATCH p2 = (:User {name: "mochaeach"})-[:Joins]->(:Club {_id: "C02"})
      RETURN p1 = p2 // true
      

      MATCH p1 = (:User {name: "mochaeach"})-[:Joins]->(:Club {_id: "C02"}) 
      MATCH p2 = (:Club {_id: "C02"})<-[:Joins]-(:User {name: "mochaeach"})
      RETURN p1 = p2 // false
      

      比较点或边

      点和边类似记录一样处理,其中属性名称作为键,属性值作为数据。

      MATCH  (n1:User {name: "mochaeach"}), (n2:Club {_id: "C02"})
      RETURN n1 = n2 // false
      

      比较文本值和数值

      GQL比较文本值与数值时,会将文本值转换为数值。转换过程如下:

      • 提取数字字符:从文本开头提取数字(0-9)和小数点(.),直到遇到第一个非数字字符为止。
      • 转换为数值类型:将提取的数字字符转换为与另一个操作数相同的数值类型:
        • 如果数值操作数是正整数,则将数字字符转换为UINT64
        • 如果数值操作数是负整数(例如-1),则将数字字符转换为INT64
        • 如果数值操作数是浮动点数(例如1.0),则将数字字符转换为DOUBLE
      • 如果文本开头没有数字字符,则其转换为0

      注意: 转换为UINT64INT64时,会丢弃提取的数字字符中的小数部分。

      RETURN 10 > "9a" // true; converts "9a" to 9
      

      RETURN 11.1 < "11.2a" // true; converts "11.2a" to 11.2
      

      RETURN 11 < "11.2a" // false; converts "11.2a" to 11
      

      RETURN 11 < "a10" // false; converts "a10" to 0
      

      比较文本值和时间值

      在GQL中,文本可以通过隐式转换为时间类型与时间值进行比较。这种行为类似于文本与数字的比较。为了成功转换文本,它必须:

      • 遵循ISO 8601标准中日期、日期时间或持续时间的格式。
      • 能被转换为与另一个操作数类型匹配的时间值。

      // p.birthday is 1987-10-01
      MATCH (p1 {name: "Alex"}), (p2 {name: "Joy"})
      RETURN p1.birthday < "1987-10-02" // true
      

      比较布尔值和其他值

      布尔值可以通过隐式类型转换与其他数据类型进行比较,例如数字或文本值。

      RETURN true = 1 // true
      

      RETURN false = 0 // true
      

      RETURN true = "true" // false
      

      赋值运算符

      =运算符用于在LETSET等语句中赋值,也用于在MATCH语句中声明路径变量。

      LET a = 1 RETURN a
      

      MATCH (n:Person WHERE n.name = "John Doe")
      SET n.gender = "male"
      

      MATCH p = ()->() RETURN p
      

      字符运算符

      字符串联

      ||(或+)运算符可将多个字符串按顺序合并成单个字符串。

      RETURN "data" || "base"
      

      结果:

      "data" || "base"
      database

      字符匹配

      CONTAINS操作符可用来判断一个字符串是否包含另一个字符串(大小写敏感)。

      查询aboutMe属性中含有字符串“graph database”的user点:

      MATCH (n:user WHERE n.aboutMe CONTAINS "graph database")
      RETURN n
      

      为进行大小写不敏感的匹配,可先将所有字符转换成大写或小写:

      MATCH (n:user WHERE lower(n.aboutMe) CONTAINS "graph database")
      RETURN n
      

      CONTAINS操作符也可用来精确或模糊匹配指定的关键词与全文索引的词元。详见使用全文索引

      使用全文索引prodDesc查找含有graph和database词元的点:

      MATCH (n WHERE ~prodDesc CONTAINS "graph database")
      RETURN n
      

      规范化谓词

      判断字符串是否规范化。GQL支持以下规范化谓词:

      • IS [ <normal form> ] NORMALIZED
      • IS NOT [ <normal form> ] NORMALIZED

      详情

      • <normal form>规范化形式默认为NFC。其他可用规范化形式包括NFDNFKCNFKD

      RETURN "Å" IS NORMALIZED AS normRes
      

      结果:

      normRes
      1

      RETURN "Å" IS NFD NORMALIZED AS normRes
      

      结果:

      normRes
      0

      列表运算符

      构建列表

      []内放置逗号分隔的元素来创建列表。

      LET items = [1,2,3]
      RETURN items
      

      结果:

      items
      [1,2,3]

      []也可用来构建嵌套列表

      LET items = [[1,2],[2,3]]
      RETURN items
      

      结果:

      items
      [[1,2],[2,3]]

      访问元素

      使用[]可通过索引来访问列表中的元素。列表索引从0开始,即第一个元素的索引为0

      LET items = ["a", 1, "b"]
      RETURN items[0]
      

      结果:

      items[0]
      a

      判断包含关系

      IN用来判断特定元素是否在列表中存在。

      本条查询返回_id值包含在列表["U01", "U02"]中的点:

      MATCH (n) WHERE n._id IN ["U01", "U02"]
      RETURN n
      

      列表串联

      串联运算符||将多个列表按顺序合并成单个列表。

      RETURN [1,2,3] || [3,4,5] AS newList
      

      结果:

      newList
      [1,2,3,3,4,5]

      路径运算符

      构建路径

      PATH[]通过按顺序枚举点和边创建路径。

      <path value constructor> ::= "PATH[" <path element list> "]"
      
      <path element list> ::= <node reference> [ <path element list step>... ]
      
      <path element list step> ::= "," <edge reference> "," <node reference>
      

      详情

      • 如果<path element list>包含null值或未识别出路径,则会引发异常:路径格式错误

      MATCH (n1 {_id: "U01"}), (n2 {_id: "U02"}), -[e {_uuid:39}]->
      RETURN PATH[n2, e, n1]
      

      路径拼接

      拼接运算符||将多个路径连结成单个连续路径,即前一条路径的终点和后一条路径的起点相同时,两条路径会合并成一条。若前后路径不符合该条件,则会引发异常:路径格式错误。

      MATCH p1 = ({_id: "U01"})->(n), p2 = (n)->()
      RETURN p1 || p2
      

      注意:如果图中没有匹配({_id:"U01"})->(n)->()的路径,则表达式p1 || p2不会返回任何结果。换句话说,仅当图中确实存在拼接的完整路径时,才会拼接成功。

      记录运算符

      构建记录

      RECORD{}通过指定字段创建记录。

      <record constructor> ::=
        [ "RECORD" ] "{" [ <field> [ { "," <field> }... ] ] "}"
      
      <field> ::= <field name> ":" <value expression>
      

      LET rec = RECORD{length: 20, width: 59, height: 10}
      RETURN rec.length
      

      结果:

      rec.length
      20

      引用字段

      .(句点)可用来引用记录的字段。

      LET rec = RECORD{length: 20, width: 59, height: 10}
      RETURN rec.length * rec.width * rec.height AS capacity
      

      结果:

      capacity
      11800

      去重

      DISTINCT可用来执行去重操作,仅保留唯一值。

      本条查询返回用户不包含重复的age值:

      MATCH (n:User)
      RETURN DISTINCT n.age
      

      Exists谓词

      EXISTS谓词用来判断指定的图模式或查询是否有结果返回。如果发现匹配数据,谓词判断结果为真,否则为假。请注意,MATCH语句不支持使用EXISTS

      <exists predicate> ::= 
        "EXISTS" {
            "{" <graph pattern> "}"
          | "(" <graph pattern> ")"
          | "{" { <match statement>... } "}"
          | "(" { <match statement>... } ")"
          | <nested query specification>
        }
                 
      <nested query specification> ::= "{" <query specification> "}"
      

      本条查询判断图中是否存在以点A为起点的路径,并以布尔值返回判断结果:

      RETURN EXISTS {({_id:"A"})->()}
      

      本条查询判断图中是否存在这样一条路径,其起点为A,终点为B,边的score值大于2,并以布尔值返回判断结果:

      RETURN EXISTS {
        MATCH ({_id: "A"})-[e]->({_id: "B"})
        WHERE e.score > 2
      }
      

      本条查询判断列表中是否有元素大于3,并以布尔值返回判断结果:

      RETURN EXISTS {
        FOR item in [1,2,3]
        FILTER item > 3
        RETURN item
      }
      

      Null谓词

      用来测试是否为null值。GQL支持以下null谓词:

      • IS NULL
      • IS NOT NULL

      本条查询获取每个点:Papertitle,前提是title属性值非空;若无符合条件的点,则返回信息为TITLE NOT FOUND

      MATCH (n:Paper)
      RETURN CASE 
        WHEN n.title IS NOT NULL THEN n.title
        ELSE "TITLE NOT FOUND"
      END
      

      值类型谓词

      用来确认值是否符合某个特定类型。GQL支持以下值类型谓词:

      • IS TYPED <value type>
      • IS NOT TYPED <value type>

      详情

      • 目前<value type>支持以下数据类型关键字:STRINGBOOL

      RETURN "a" IS TYPED BOOL AS typeCheck
      

      结果:

      typeCheck
      0

      标签谓词

      用来确认图元素是否满足标签表达式。GQL支持以下值类型谓词:

      • IS LABELED
      • IS NOT LABELED
      • :

      MATCH (n) WHERE n IS NOT LABELED Paper
      RETURN n
      

      MATCH (n) WHERE n:Paper
      RETURN n
      

      起/终谓词

      确认点是否为边的起点或终点。GQL支持以下起/终谓词:

      • <node reference> IS SOURCE OF <edge reference>
      • <node reference> IS NOT SOURCE OF <edge reference>
      • <node reference> IS DESTINATION OF <edge reference>
      • <node reference> IS NOT DESTINATION OF <edge reference>

      MATCH (n {_id: "P1"}), ()-[e:Cites]->() WHERE n IS SOURCE OF e
      RETURN e
      

      有向谓词

      有向谓词用来确认边变量是否与右向边绑定。GQL支持以下有向谓词:

      • IS DIRECTED
      • IS NOT DIRECTED

      详情

      • 嬴图数据库中创建的所有边均为有向边。

      MATCH ()-[e]-()
      RETURN e IS DIRECTED
      

      结果:

      e IS DIRECTED
      1

      布尔值谓词

      用来判断布尔表达式或变量是否真实,即判断其为真还是为假。GQL支持一下布尔值谓词:

      • IS TRUE
      • IS FALSE

      RETURN 1 > 2 IS TRUE
      

      结果:

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