nebula 版本:3.2.1
部署方式:分布式
安装方式:RPM
是否为线上版本:Y
硬件信息
磁盘 非SSD
CPU、内存信息 单节点 4core8g
问题的具体描述
我使用如下的nGQL查询vid为76517618765348的2跳路径数据
MATCH p=(v)-[e:`belong`*2]-(v2)
WHERE id(v) IN ["76517618765348"]
AND ALL(l IN e WHERE l.create_long == 1665368234) RETURN p LIMIT 100
查询结果如下图
其中边belong有类型为long,名称为create_long的属性,我这里通过==关系查询值为1665368234的边进行过滤,为什么无法查询到对应的数据呢?
真实存在的数据关系如下图
希望大佬能帮忙看下,先谢了!
kyle
2
查不出数据不是对的吗?76517618765348 这个点的边上 create_long 就不是 1665368234 啊
按照文档来说belong*2是定长的路径,ALL不是从这定长的路径中进行条件的过滤吗?
真实的数据中,有一个边的create_long属性值是 1665368234 ,见下图
而通过下面的查询方式
MATCH p=(v)-[e:`belong`*2]-(v2)
WHERE id(v) IN ["76517618765348"]
AND e[1].create_long == 1665368234 RETURN p LIMIT 100
是能查询出对应的数据,如下图
kyle
6
All 函数是说列表里边所有元素都满足条件,如果你只希望路径里边只要有一条边的 create_long 值为 1665368234 那么需要用 ANY 函数:
MATCH p=(v)-[e:`belong`*2]-(v2)
WHERE id(v) IN ["76517618765348"] AND ANY(l IN e WHERE l.create_long == 1665368234)
RETURN p LIMIT 100
2 个赞
明白了。这种写法的语法在文档中哪个部分呢?只看到了谓词函数中对all和any的解释。
l IN e WHERE l.create_long == 1665368234
这种写法在哪里可以学习到呢?
多谢大佬
system
关闭
13
此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。