我需要匹配任何一个节点标签。
我们可以为关系类型(如
)执行此操作(n)-[:KNOWS|LOVES]->(m)
我们可以像这样匹配节点标签吗? 例如
MATCH (c:computer)<-[:belongs_to]-(comp:HP|IBM)
return comp
目前我已经尝试了这个并且它给出了结果,有没有更简单的方法?
MATCH (c:computer)<-[:belongs_to]-(comp)
WHERE 'HP' IN labels(comp) OR 'IBM' IN labels(comp)
return comp
答案 0 :(得分:6)
我想
WHERE 'HP' IN labels(comp) OR 'IBM' IN labels(comp)
AND
WHERE comp:HP OR comp:IBM
将以相同的方式工作第二个使用简单
答案 1 :(得分:1)
您上次查询的这种形式至少更容易编写,更容易理解:
MATCH (c:computer)<-[:belongs_to]-(comp)
WHERE comp:HP OR comp:IBM
return comp;
答案 2 :(得分:0)
目前面临同样的问题。
因为我有很多标签要匹配(揭示我的架构中有点缺陷!)我发现以下内容可以简洁地解决这个问题:
MATCH (n:computer)
WHERE any(label in labels(n) WHERE label in ['HP', 'IBM'])
RETURN n