修改密码

请输入密码
请输入密码 请输入8-64长度密码 和 email 地址不相同 至少包括数字、大写字母、小写字母、半角符号中的 3 个
请输入密码
提交

修改昵称

当前昵称:
提交

申请证书

证书详情

Please complete this required field.

  • Ultipa Blaze (v4)
  • Ultipa Powerhouse (v5)

Standalone

点击

了解 Ultipa Powerhouse (v5)架构中的四大组成部分。

Please complete this required field.

Please complete this required field.

Please complete this required field.

Please complete this required field.

如果不需要 HDC 服务,则此项留空。

Please complete this required field.

如果不需要 HDC 服务,则此项留空。

Please complete this required field.

Please complete this required field.

所有服务器的MAC地址,由换行符或逗号分隔。

Please complete this required field.

Please complete this required field.

取消
申请
ID
产品
状态
核数
Shard 服务最大数量
Shard 服务最大总核数
HDC 服务最大数量
HDC 服务最大总核数
申请天数
审批日期
过期日期
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

      MATCH

      概述

      MATCH语句使用一个图模式从图中检索数据,并将数据与变量绑定供后续使用,是图数据库查询的基础语句。

      <match statement> ::=
        "MATCH" <graph pattern> [ <graph pattern yield clause> ]
          
      <graph pattern yield clause> ::=
        "YIELD" <graph pattern yield item> [ { "," <graph pattern yield item> }... ]
      

      详情

      示例图

      CREATE GRAPH myGraph { 
        NODE User ({name string}),
        NODE Club ({since uint32}),
        EDGE Follows ()-[{createdOn date}]->(),
        EDGE Joins ()-[{memberNo uint32}]->()
      } PARTITION BY HASH(Crc32) SHARDS [1]
      

      INSERT (rowlock:User {_id: 'U01', name: 'rowlock'}),
             (brainy:User {_id: 'U02', name: 'Brainy'}),
             (purplechalk:User {_id: 'U03', name: 'purplechalk'}),
             (mochaeach:User {_id: 'U04', name: 'mochaeach'}),
             (lionbower:User {_id: 'U05', name: 'lionbower'}),
             (c01:Club {_id: 'C01', since: 2005}),
             (c02:Club {_id: 'C02', since: 2005}),
             (rowlock)-[:Follows {createdOn: '2024-01-05'}]->(brainy),
             (mochaeach)-[:Follows {createdOn: '2024-02-10'}]->(brainy),
             (brainy)-[:Follows {createdOn: '2024-02-01'}]->(purplechalk),
             (purplechalk)-[:Follows {createdOn: '2024-05-03'}]->(lionbower),
             (brainy)-[:Joins {memberNo: 1}]->(c01),
             (lionbower)-[:Joins {memberNo: 2}]->(c01),
             (mochaeach)-[:Joins {memberNo: 9}]->(c02)
      

      匹配所有点

      使用不含标签或属性过滤的点模式匹配所有点。

      MATCH (n)
      RETURN n
      

      结果:n

      _id _uuid schema
      values
      U05 Sys-gen User {name: "lionbower"}
      U04 Sys-gen User {name: "mochaeach"}
      U03 Sys-gen User {name: "purplechalk"}
      U02 Sys-gen User {name: "Brainy"}
      U01 Sys-gen User {name: "rowlock"}
      C02 Sys-gen Club {since: 2005}
      C01 Sys-gen Club {since: 2005}

      匹配所有边

      使用不含标签或属性过滤的边模式匹配所有边。

      MATCH ()-[e]->()
      RETURN e
      

      结果:e

      _uuid
      _from
      _to
      _from_uuid
      _to_uuid
      schema
      values
      Sys-gen U01 U02 UUID of U01 UUID of U02 Follows {createdOn: "2024-01-05" }
      Sys-gen U02 U03 UUID of U02 UUID of U03 Follows {createdOn: "2024-02-01"}
      Sys-gen U03 U05 UUID of U03 UUID of U05 Follows {createdOn: "2024-05-03"}
      Sys-gen U04 U02 UUID of U04 UUID of U02 Follows {createdOn: "2024-02-10"}
      Sys-gen U02 C01 UUID of U02 UUID of C01 Joins {memberNo: 1}
      Sys-gen U05 C01 UUID of U05 UUID of C01 Joins {memberNo: 2}
      Sys-gen U04 C02 UUID of U04 UUID of C02 Joins {memberNo: 9}

      请留意,如果不指定边方向(出方向>或入方向<),图中每条边都会返回两次。因为如果两条路径的元素序列不同,它们就被视为不同的路径,即(n1)-[e]->(n2)(n2)<-[e]-(n1)是不同的路径。

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

      使用标签匹配

      点模式和边模式支持使用标签表达式指定一个或多个标签。

      获取所有Club点:

      MATCH (n:Club)
      RETURN n
      

      结果:n

      _id _uuid schema
      values
      C02 Sys-gen Club {since: 2005}
      C01 Sys-gen Club {since: 2005}

      获取所有通过FollowsJoins出边与Brainy相连的点:

      MATCH (:User {name: 'Brainy'})-[:Follows|Joins]->(n)
      RETURN n
      

      结果:n

      _id _uuid schema
      values
      U03 Sys-gen User {name: "purplechalk"}
      C01 Sys-gen Club {since: 2005}

      使用属性规范匹配

      可将属性规范置于点模式和边模式中,使用键值对应用联合相等条件筛选属性。

      获取属性_idsince等于特定值的Club点:

      MATCH (n:Club {_id: 'C01', since: 2005})
      RETURN n
      

      结果:n

      _id _uuid schema
      values
      C01 Sys-gen Club {since: 2005}

      获取C01俱乐部里memberNo等于1的会员信息:

      MATCH (:Club {_id: 'C01'})<-[:Joins {memberNo: 1}]-(n)
      RETURN n
      

      结果:n

      _id _uuid schema
      values
      U02 Sys-gen User {name: "Brainy"}

      使用简写边匹配

      当查询不涉及边标签和属性,后续查询也无需使用边变量时,可使用简写边模式。如有需要,仍可指定边方向。

      获取通过出边与mochaeach相连的点:

      MATCH (:User {name: 'mochaeach'})->(n)
      RETURN n
      

      结果:n

      _id _uuid schema
      values
      U02 Sys-gen User {name: "Brainy"}
      C02 Sys-gen Club {since: 2005}

      匹配路径

      获取mochaeach关注的用户以及这些用户加入的俱乐部:

      MATCH p = (:User {name: 'mochaeach'})-[:Follows]->(:User)-[:Joins]->(:Club)
      RETURN p
      

      结果:p

      使用WHERE从句匹配

      MATCH语句中,WHERE从句可用于元素模式(点、边模式)和带括号路径模式,或紧跟图模式之后使用,用来指定各种查询条件。

      元素模式WHERE从句

      获取1步路径,其中包含Follows出边,且其createdOn属性值大于指定日期:

      MATCH p = ()-[e:Follows WHERE e.createdOn > '2024-04-01']->()
      RETURN p
      

      结果:p

      带括号路径模式WHERE从句

      获取1步或2步路径,包含Follows出边,且其createdOn属性值小于指定日期:

      MATCH p = (()-[e:Follows]->() WHERE e.createdOn < "2024-02-05"){1,2}
      RETURN p
      

      结果:p

      图模式WHERE从句

      获取C01俱乐部中memberNo大于1的会员信息:

      MATCH (c:Club)<-[e:Joins]->(n)
      WHERE c._id = 'C01' AND e.memberNo > 1
      RETURN n
      

      结果:n

      _id _uuid schema
      values
      U05 Sys-gen User {name: "lionbower"}

      匹配带量词路径

      带量词路径是变长路径,其中路径整体或部分重复多次出现。

      获取去重后lionbower的1到3步邻居:

      MATCH (:User {name: 'lionbower'})-[]-{1,3}(n)
      RETURN collect_list(DISTINCT n._id) AS IDs
      

      结果:

      IDs
      ["C01","U01","U02","U03","U04"]

      获取以1或2步子路径开头、同时与点C01相连的路径,其中开头的子路径包括Follows边且其createdOn属性大于指定值:

      MATCH p = (()-[e:Follows]->() WHERE e.createdOn > "2024-01-31"){1,2}()-({_id:"C01"})
      RETURN p
      

      结果:p

      匹配最短路径

      两点间的最短路径是它们之间边数量最少的路径。

      获取lionbowerpurplechalk两点间5步内的最短路径:

      MATCH p = ALL SHORTEST (n1:User)-[]-{,5}(n2:User)
      WHERE n1.name = 'lionbower' AND n2.name = 'purplechalk'
      RETURN p
      

      结果:p

      匹配相交路径

      MATCH语句包含两条或以上有共同元素的路径模式时,最终结果是各个路径模式结果集基于共同元素变量进行Equi-Join(等值连接)后的结果。

      获取Club点(y),保证与其相连的点(x)同时也与rowlockpurplechalk相连:

      MATCH ({name: 'rowlock'})-(x)-({name: 'purplechalk'}), (x)-[]-(y:Club)
      RETURN y
      

      结果:y

      _id _uuid schema
      values
      C01 Sys-gen Club {since: 2005}

      匹配不相交路径

      MATCH语句包含两条或以上没有共同元素的路径模式时,最终结果是对各个路径模式结果集执行笛卡尔积后的结果。

      获取Club点,以及在2024-02-01之后曾关注其他用户的User点:

      MATCH (c:Club), (u:User)-[f:Follows WHERE f.createdOn > '2024-02-01']->()
      RETURN c._id, u.name
      

      结果:

      c._id u.name
      C02 mochaeach
      C02 purplechalk
      C01 mochaeach
      C01 purplechalk

      MATCH YIELD

      YIELD从句在MATCH语句中选择点、边或路径变量,允许后续查询继续使用它们;未被选择的变量将不再可用。MATCH语句的YIELD从句不支持使用AS为变量重命名。忽略YIELD从句时,默认所有变量继续传递到后续查询。

      本查询只返回c,因为n没有包含在YIEID中:

      MATCH (n:User)-[:Joins]->(c:Club)
      YIELD c
      RETURN *
      

      结果:c

      _id _uuid schema
      values
      C01 Sys-gen Club {since: 2005}
      C02 Sys-gen Club {since: 2005}
      C01 Sys-gen Club {since: 2005}

      本查询返回n1e,不包括n2

      MATCH (n1:Club)
      MATCH (n2:Club)<-[e:Joins WHERE e.memberNo < 3]-() YIELD e
      RETURN *
      

      n1

      _id _uuid schema
      values
      C01 Sys-gen Club {since: 2005}
      C01 Sys-gen Club {since: 2005}
      C02 Sys-gen Club {since: 2005}
      C02 Sys-gen Club {since: 2005}

      e

      _uuid
      _from
      _to
      _from_uuid
      _to_uuid
      schema
      values
      Sys-gen U02 C01 UUID of U02 UUID of C01 Joins {memberNo: 1}
      Sys-gen U02 C01 UUID of U02 UUID of C01 Joins {memberNo: 1}
      Sys-gen U05 C01 UUID of U05 UUID of C01 Joins {memberNo: 2}
      Sys-gen U05 C01 UUID of U05 UUID of C01 Joins {memberNo: 2}

      本查询有语法错误,因为YIELD从句没有选择n2RETURN语法无法获取它:

      MATCH (n1:User), (n2:Club)
      YIELD n1
      RETURN n1, n2
      
      请完成以下信息后可下载此书
      *
      公司名称不能为空
      *
      公司邮箱必须填写
      *
      你的名字必须填写
      *
      你的电话必须填写
      *
      你的电话必须填写
      隐私政策
      请勾选表示您已阅读并同意。

      Copyright © 2019-2025 北京同心尚科技发展有限公司-保留所有权利 京ICP备19040872号-1