【问题标题】:neo4j cypher, iterate over the resultneo4j 密码,迭代结果
【发布时间】:2014-04-17 01:17:20
【问题描述】:

我有一个 neo4j 数据库,我想将部分密码代码(一组节点 ID)的结果用于第二部分:

类似:

MATCH ()-[:KNOWS]->(b)
FOREACH (n IN distinct(id(b))| SET n :label)

在纯密码代码中,有没有办法循环遍历结果“distinct(id(b))”并将另一个查询应用于每个元素?

【问题讨论】:

    标签: neo4j cypher


    【解决方案1】:

    原查询的两个问题:

    1. 您必须有一个集合才能使用FOREACH
    2. 您将n 绑定到节点ID,并且您不能在节点ID 上设置标签,只能在节点上。

    你可以使用FOREACH来设置标签

    MATCH ()-[:KNOWS]->(b)
    WITH collect (distinct b) as bb
    FOREACH (b IN bb | SET b:MyLabel)
    

    在这种情况下你不需要把它作为一个集合来做,你可以这样做

    MATCH ()-[:KNOWS]->(b)
    WITH distinct b
    SET b:MyLabel
    

    一般来说,您可以使用WITH 将结果通过管道传输到其他查询部分

    【讨论】:

      【解决方案2】:

      我通过以下方式获得了所需的结果:

      MATCH ()-[:KNOWS]->(b)
      WITH DISTINCT (b)
      RETURN id(b)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-05-26
        • 1970-01-01
        • 2015-12-02
        • 2023-03-04
        • 1970-01-01
        • 1970-01-01
        • 2011-12-12
        • 1970-01-01
        相关资源
        最近更新 更多