如何用go查询属性值中最大的对应的vid

nebula 版本:2.5.1
部署方式 :分布式
是否为线上版本:Y
硬件信息
磁盘: SSD
CPU、内存信息
问题的具体描述
查询属性值最大的点对应的vid
比如姓名相同时候,查询年龄最大的vid(可能不止一条 所以不能通过limit实现)
用go语言怎么实现

$var = lookup  ON player  where player.name == 'Tim'  YIELD  player.name  as name,player.age as age 
| group by $-.name
YIELD  max($-.age ) as age 

返回结果最大的年龄

当我尝试用以下方法使用$var中的最大的age时候遇到了问题

$var = lookup  ON player  where player.name == '123'  YIELD  player.name  as name,player.age as age 
| group by $-.name
YIELD  max($-.age ) as age ;
lookup up  lookup  ON player  where player.name == '123'  and player.age == $var.age
YIELD  player.name  as name,player.age as age ;

报错信息

SyntaxError: syntax error near `lo'

有什么办法拿到$var中的非vid的属性,或者直接查询出对应的结果吗?

报错信息显示 lookup语句 写重复了吧


SemanticError: ‘$var.age’ is not an evaluable expression.
好像是属性的key没有拿到

lookup 语句的where 子句中 目前不支持 引用或者变量的格式

除了使用客户端去承接变量,还有其他方法吗

好像没其他方法了啊,使用了聚合函数,无法把vid 传到下一个语句中

match不能用?

match 的话需要多个match
多个match可以连起来吗

现在还不支持,可以帮忙提个 issue, 有PM小姐姐会每天看的

怎么提,还不会,有传送门吗

match (p:player) return collect(p.name) as namelist,p.age as age order by age desc limit 1

1 个赞

https://github.com/vesoft-inc/nebula/issues
可以提在这里

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