根据id 返回tag

已知一个实体的id,能根据这个id 返回对应的tag吗?

MATCH 和 FETCH 都可以哈。

(root@nebula) [basketballplayer]> INSERT VERTEX school(name, found_time) VALUES "player100":("player100", timestamp("2000-04-01T08:00:00"));
Execution succeeded (time spent 4764/9233 us)

Wed, 17 Nov 2021 14:52:13 UTC

(root@nebula) [basketballplayer]> MATCH (v) WHERE id(v) == "player100" RETURN v
+------------------------------------------------------------------------------------------------------+
| v                                                                                                    |
+------------------------------------------------------------------------------------------------------+
| ("player100" :school{found_time: 954576000, name: "player100"} :player{age: 42, name: "Tim Duncan"}) |
+------------------------------------------------------------------------------------------------------+
Got 1 rows (time spent 1255/2384 us)


(root@nebula) [basketballplayer]> FETCH PROP ON * "player100" YIELD tags(vertex)
+----------------------+
| tags(VERTEX)         |
+----------------------+
| ["school", "player"] |
+----------------------+
Got 1 rows (time spent 2969/6115 us)

1 个赞

比如搜索的时候用到了关系限制,然后在最后一个管道里 yield v1,v2, v3。这样只能返回三个id,我需要返回id 的时候同时返回tag。这个支持吗?

可以的 tags() 函数能被 YIELD 的哈

GO 2 STEPS FROM "player102" OVER follow YIELD tags($$), properties($$).name
+----------------------+---------------------+
| tags($$)             | properties($$).name |
+----------------------+---------------------+
| ["player"]           | "Tony Parker"       |
| ["player"]           | "Manu Ginobili"     |
| ["school", "player"] | "player100"         |
| ["player"]           | "LaMarcus Aldridge" |
| ["player"]           | "Manu Ginobili"     |
+----------------------+---------------------+

您上面这个例子tags($$) 表示的是实体的tags? 我的场景是tags(vid), 我试了tags(vid) 显现如下错误

是引用符哈,这里我是表示目的地点

https://docs.nebula-graph.com.cn/2.6.1/3.ngql-guide/5.operators/5.property-reference/

$^	引用起始点。更多信息请参见引用属性。
$$	引用目的点。更多信息请参见引用属性。
$-	引用复合查询中管道符之前的语句输出结果。更多信息请参见管道符。

不过要注意下如果是双向拓展时候的情况

tags 里面可以是vertex的引用,不能是vertex 的id ,对不对?

是的,只能操作 vertex,不是vertex id

ref: Schema函数 - Nebula Graph Database 手册

知道了,多谢。

如果你觉得 wey 的回复解决了你的问题,记得勾选为【解决方案】方便后续的小伙伴遇到相似问题快速找到答案哈,谢谢 ysjiao

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。