修改密码

请输入密码
请输入密码 请输入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.3
搜索
    v5.3

      MATCH

      概述

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

      示例图

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

      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
      

      使用标签/Schema匹配

      点模式和边模式支持使用标签/Schema表达式指定Schema(类型图中)或标签(开放图中)。

      获取所有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.name
      

      结果:n

      n.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(等值连接)的结果。

      获取既加入了C02俱乐部又关注Brainy的用户:

      MATCH (u)-[:Joins]->(:Club {_id: 'C02'}), (u)-[:Follows]->(:User {name: 'Brainy'})
      RETURN u
      

      结果:u

      _id _uuid schema
      values
      U04 Sys-gen User {name: "mochaeach"}

      上面的查询相当于使用两个MATCH

      MATCH (u)-[:Joins]->(:Club {_id: 'C02'})
      MATCH (u)-[:Follows]->(:User {name: 'Brainy'})
      RETURN u
      

      如果多个路径模式没有共同变量,最后的结果是各结果集的笛卡尔乘积,这通常不是用户希望得到的。例如,

      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语句中选择点、边或路径变量,允许后续查询继续使用它们;未被选择的变量将不再可用。忽略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