【NebulaGraph】查询案例 七
- 1. 查询语句1
- 2. 查询语句2
- 3. 查询语句3
- 4. 查询语句4
1. 查询语句1
GO FROM "player100" OVER *
YIELD
type(edge) AS link,
properties($$) AS properties,
tostring(src(edge)) AS src,
tostring(dst(edge)) AS dst,
tags($$) AS tagLists
YIELD … 是查询要返回的内容:
-
type(edge) AS link
获取每条边的类型名(即边的类型),命名为 link。 -
properties($$) AS properties
获取目标点(终点)的所有属性,命名为 properties。 -
$$ 表示目标点。
-
tostring(src(edge)) AS src
获取边的起点 ID,并转成字符串,命名为 src。 -
tostring(dst(edge)) AS dst
获取边的终点 ID,并转成字符串,命名为 dst。 -
tags($$) AS tagLists
获取目标点的所有标签(tag),命名为 tagLists。
结果:
2. 查询语句2
GO FROM "player100" OVER *
YIELD
type(edge) AS link,
tostring(src(edge)) AS src,
tostring(dst(edge)) AS dst,
tags($$) AS tagLists,
properties($$) AS properties,
edge AS ea
-
type(edge) AS link
获取边的类型名,比如 “follow”、“serve” 等,起一个别名叫 link。 -
tostring(src(edge)) AS src
边的起点 ID 转为字符串;通常就是 “player100” 本身;命名为 src。 -
tostring(dst(edge)) AS dst
边的终点 ID 转为字符串;即 “player100” 出发能到达的点;命名为 dst。 -
tags($$) AS tagLists
终点($$)的标签列表;
每个点可以有一个或多个 tag,比如:[“player”]、[“team”] 等;
命名为 tagLists。 -
properties($$) AS properties
获取终点($$)
的所有属性;
比如一个点有 name, age, birth 等字段,就会返回一个 JSON 样式的结构。 -
edge AS ea
获取整条边本身,包括:
边的类型
起点、终点
边属性(例如创建时间、权重等)
命名为 ea
3. 查询语句3
FIND SHORTEST PATH WITH PROP FROM "player100"
TO "player150" OVER `follow` UPTO 10 STEPS YIELD path AS p
-
FIND SHORTEST PATH
表示要查找两个点之间的最短路径(Shortest Path);
默认是无环路径,不走重复节点。 -
WITH PROP
表示在返回路径的同时,也要返回路径中边的属性;
适用于你需要了解路径中每条边的权重、时间戳、标记等。 -
FROM "player100"
起点ID -
TO "player150"
终点ID -
OVER follow
指定在哪些边类型上查找路径,比如 follow, serve, 或 * 表示所有边;
%s 是边类型占位符。
-
UPTO 10 STEPS
最长路径长度(最多经过 10 条边);
UPTO 表示“路径长度不超过 x 步”。 -
YIELD path AS p
返回找到的路径,命名为 p;
path 是一种内置类型,包含路径中所有节点和边;
如果用了 WITH PROP,边上会带属性。