GO FROM 如何过滤 dst tag 类别?

使用 MATCH 语法可以方便指定 dst tag 类别:

MTHCH (u: player) -[e: serve] -> (t: team) WHERE id(u) == ‘u_1’ RETURN id(t)
  1. 那么有 GO FROM 语句处理 tag 中增加一个 type 属性值,是否有其他便捷方式可以指定 dst tag 类别?
  2. 如果 1 有其他方式,GO FROM 和 MATCH 性能上有无差别?
  1. 没有

不知道这样能满足你的要求不,直接是不支持的。
利用 $$ 引用写条件,这样条件里可以间接指定 _dst 的类别,比如

(user@nebula) [basketballplayer]> 
GO FROM "player100" OVER * \
    WHERE $$.player.age > 0;
+------------+-------------+
| serve._dst | follow._dst |
+------------+-------------+
|            | "player125" |
+------------+-------------+
|            | "player101" |
+------------+-------------+
|            | "player102" |
+------------+-------------+
Got 3 rows (time spent 3307/3759 us)

Wed, 26 May 2021 02:00:44 UTC

(user@nebula) [basketballplayer]> 
GO FROM "player100" OVER * ;
+------------+-------------+
| serve._dst | follow._dst |
+------------+-------------+
| "team204"  |             |
+------------+-------------+
|            | "player101" |
+------------+-------------+
|            | "player102" |
+------------+-------------+
|            | "player125" |
+------------+-------------+
Got 4 rows (time spent 1857/2487 us)

Wed, 26 May 2021 02:00:49 UTC

这里 OVER * 意味着 _dst 可以使两种 tag 的 vertex,但是通过 WHERE $$.player.age 限定了输出只有 player。没有限定则输出 team和player两种。

dst 的属性中都一样的话,这种方式就不行了

是的,依赖 tag 独特的 property。

浙ICP备20010487号