neo4j cypher,迭代结果

时间:2014-04-17 01:17:21

标签: neo4j cypher

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

类似的东西:

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

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

2 个答案:

答案 0 :(得分:1)

原始查询存在两个问题:

  1. 您必须拥有一个使用FOREACH的集合。
  2. 您将n绑定到节点ID,并且您不能仅在节点上设置节点ID上的标签。
  3. 您可以使用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

    将结果传递给其他查询部分

答案 1 :(得分:0)

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

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