语句执行顺序问题

  • nebula 版本:3.2.1
  • 部署方式:单机
  • 安装方式:Docker
  • 是否为线上版本:N

我们试图执行如下语句:

go 1 to 3 steps from 1024262799655628801 over relation where properties(edge).type=='使用该银行服务' yield properties($$) as d,properties($^) as s,edge as r limit [40000,400,400]

该语句执行返回了6条数据,均是1 step的结果。
之后我们将第一层的limit改为4000:

go 1 to 3 steps from 1024262799655628801 over relation where properties(edge).type=='使用该银行服务' yield properties($$) as d,properties($^) as s,edge as r limit [4000,400,400]

预期上一次的6条数据仍被返回,但实际返回0条。
我们期望的执行顺序是go->where->limit,但目前怀疑语句的实际执行顺序是go->limit->where,无法满足查询要求。

确实是go->limit->where

1 个赞

那想实现go->where->limit,应该怎么调整语句呢

可能要用pipe了,
go where | limit…

我用管道符直接接limit[]这种多层的写法是报错的,所以是必须要拆开,一层一层的写吗 :joy:

1 个赞

:face_exhaling:, 确实要拆开写.

1 个赞

哎,语意的歧义是怎么定义的呢,全看实现吗?

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