0

通过 neo4j 中的查询,我将标签名称作为变量,因此在同一个查询中,我想找到具有此标签的所有节点。我知道我不能有这样的标签名称变量

MATCH (n:${variable}) RETURN n

也不

MATCH (n:variable) RETURN n

我正在为我的情况寻找解决方法,但我找不到apoc适合这种情况的功能。我期待这样的功能

apoc.match.node(['labelName'])

我知道可以使用标签找到节点WHERE

WHERE label IN labels(nodes)

我的猜测是这种结构会减慢搜索速度,所以我想避免它

4

1 回答 1

2

纯 Cypher 不可能,但您可以考虑使用 APOC 的apoc.cypher.run程序:

WITH $variable AS label
CALL apoc.cypher.run("MATCH (:" + label + ") RETURN count(*) AS count", {})
YIELD value
RETURN label, value.count AS count;

https://neo4j.com/labs/apoc/4.1/overview/apoc.cypher/apoc.cypher.run/#usage-apoc.cypher.run

于 2021-11-18T15:12:14.473 回答