match无法查找带有属性过滤的多个tag的数据

nebula: 3.0.0

类似于这种语句: MATCH (v0:player:team) where v0.player.name contains “张” RETURN v0 limit 10
会报错

但是把条件写在player里面就可以,如: MATCH (v0:player{name:“张三”}:team) RETURN v0 limit 10。

但是这种写法的话,就没办法用contains, >, <等操作符了。

可以试试
Match (a:player) Where a.player.name contains ‘xxx’ and tags(a) in [‘player’, ‘team’] return a

不行啊,并不能正确的查出数据呢

目前确实不支持带有属性过滤的多个tag。

需要的话可以先用这种方式来做;
MATCH (v0:player), (v1:team) where v0.player.name contains “Tim” and v1.team.name contains “Tim” RETURN v0,v1 limit 10

但不太好用的是V0和V1还得想办法聚合下

这种方法,其实并没有太好解决这种需求

你们后期会有,match匹配带属性过滤的多个tag,这种功能吗,,,,我目前用的3.0.0

想确认下,你使用这种的必要性。
假如你分开多个match,然后再在应用端做聚合。是否和在图数据库里差不多?
特别是你v0和v1的过滤条件是完全独立的,合在一起查询感觉意义不是很大。

当然也可以在应用端做聚合,我只是想既然可以match (v:player{name:“xxx”}:team) reurn v这种方式查询,为啥不能在后面接where做过滤呢。那看样子只能先查出节点之后再做聚合了。

大佬,再问个问题,为啥这种写法不对呢

intersect不就是在两边取出来的集合做交集吗

match语句不支持intersect

额,好吧

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