繁体   English   中英

使用变量来匹配Neo4J CYPHER中的节点标签

[英]Use variable to match a node label in Neo4J CYPHER

我将运行一些复杂的MATCH,它将向我返回一个节点标签。 然后,我想修剪该节点标签的前缀,并使用其其余部分进一步执行匹配。 我正在尝试通过将返回标签的其余部分分配给变量,然后将该变量用于标签来MATCH的节点来做到这一点。

但是我觉得这行不通,因为我们不能在MATCH使用变量来标记节点。

例如,创建简单的两个节点图:

CREATE (:PrefixNodeLabel)
CREATE (:NodeLabel)

这个:

MATCH(n:PrefixNodeLabel)
RETURN substring(labels(n)[0],6)

正确返回NodeLabel

我试图用它来标记一个节点:

MATCH(n:PrefixNodeLabel)
WITH substring(labels(n)[0],6) AS nodeLabel
MATCH(m:nodeLabel)   //using a variable to label a node
RETURN m

但这不会返回(:NodeLabel)节点。

我知道我在做什么可能看起来很奇怪。 但是无论如何我该怎么做?

您不能通过变量代替Label

您可以通过实现

MATCH (n:PrefixNodeLabel)
WITH SUBSTRING(labels(n)[0],2) AS nodeLabel
MATCH (m)   
WHERE nodeLabel IN LABELS(m)
RETURN m

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM