NebulaGraph v3.0.1:如何确认顶点是否存在指定Tag
检查NebulaGraph v3.0.1顶点是否拥有指定Tag的正确方法
你使用的FETCH PROP ON tagName 'vid' YIELD vertex AS node语句本身逻辑没问题——如果顶点带有目标Tag,会返回对应顶点数据;如果没有,会返回空集。但如果需要更直观的“存在/不存在”判断结果,可用以下几种方法:
方法1:用MATCH返回布尔值
通过MATCH匹配带指定Tag的顶点,结合ID过滤后返回明确的布尔标识:
MATCH (n:tagName) WHERE id(n) == 'vid' RETURN EXISTS(n) AS has_tag
返回true表示顶点拥有该Tag,false则表示没有。
方法2:用LOOKUP计数判断
通过LOOKUP查找带目标Tag的顶点,过滤指定VID后统计数量:
LOOKUP ON tagName WHERE id(vertex) == 'vid' RETURN count(*) AS has_tag_count
返回结果为1说明顶点拥有该Tag,0则表示没有。
方法3:基于原FETCH语句优化结果
对原FETCH的结果进行处理,返回明确的判断值:
FETCH PROP ON tagName 'vid' YIELD vertex AS node | RETURN CASE WHEN node IS NOT NULL THEN true ELSE false END AS has_tag
利用CASE语句判断返回的顶点是否为空,从而给出true/false的明确结果。
内容的提问来源于stack exchange,提问作者Q Steam
相关产品推荐
相关产品推荐

