如何在Nebula Graph中获取指定名称顶点的出度/入度
在Nebula Graph中获取指定名称顶点的出度和入度
针对你要根据顶点name属性获取出度、入度的需求,以下是两种实用的查询方法:
方法一:使用内置函数(高效推荐)
Nebula Graph提供了out_degree()和in_degree()内置函数,直接读取元数据统计边数,性能更优。
查询指定player顶点的出度和入度
比如获取名称为Kobe Bryant的球员顶点的出度和入度:
MATCH (v:player {name: "Kobe Bryant"}) RETURN v.name, out_degree(v) AS out_degree, in_degree(v) AS in_degree
统计指定类型边的度
如果只需要统计某类边的出度/入度,比如follow类型的出边,可以给函数指定边类型参数:
MATCH (v:player {name: "Kobe Bryant"}) RETURN v.name, out_degree(v, "follow") AS follow_out_degree, in_degree(v, "serve") AS serve_in_degree
查询team顶点的度
针对示例中的team类型顶点,比如Bucks队,查询语句类似:
MATCH (v:team {name: "Bucks"}) RETURN v.name, out_degree(v) AS out_degree, in_degree(v) AS in_degree
方法二:通过遍历边统计(灵活适配复杂场景)
如果需要结合过滤条件或自定义逻辑统计边数,可以通过MATCH遍历边后用count(*)统计:
单独统计出度
MATCH (v:player {name: "Kobe Bryant"})-->() RETURN v.name, count(*) AS out_degree
单独统计入度
MATCH (v:player {name: "Kobe Bryant"})<--() RETURN v.name, count(*) AS in_degree
同时统计出度和入度
MATCH (v:player {name: "Kobe Bryant"}) OPTIONAL MATCH (v)-->() WITH v, count(*) AS out_degree OPTIONAL MATCH (v)<--() WITH v, out_degree, count(*) AS in_degree RETURN v.name, out_degree, in_degree
内容的提问来源于stack exchange,提问作者foesa Yang
相关产品推荐
相关产品推荐

