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

问题描述:

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

但是我觉得这不起作用,因为我们不能使用变量来标记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)节点。

我知道我在做什么可能看起来很奇怪。但无论如何,我该如何做到这一点?

你不能到位标签

的传递变量啊我希望我可以用变量中包含`$ {VARIABLENAME}一些额外的语法'等。您可以通过

+0

实现这一点,额外查询有点痛苦。 – Mahesha999