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, >, <等操作符了。
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,然后再在应用端做聚合。是否和在图数据库里差不多?
特别是你v0和v1的过滤条件是完全独立的,合在一起查询感觉意义不是很大。
当然也可以在应用端做聚合,我只是想既然可以match (v:player{name:“xxx”}:team) reurn v这种方式查询,为啥不能在后面接where做过滤呢。那看样子只能先查出节点之后再做聚合了。
match语句不支持intersect
额,好吧
此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。