【问题标题】:MATCH for nodes with variable label name NEO4J具有变量标签名称 NEO4J 的节点的 MATCH
【发布时间】:2021-11-18 14:50:37
【问题描述】:

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

MATCH (n:${variable}) RETURN n

也不是

MATCH (n:variable) RETURN n

我正在寻找解决我的情况的方法,我找不到适合这种情况的 apoc 函数。我希望有这样的功能

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

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

WHERE label IN labels(nodes)

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

【问题讨论】:

    标签: neo4j cypher neo4j-apoc cypher-3.1


    【解决方案1】:

    纯 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-27
      相关资源
      最近更新 更多