Neo4j和Cypher:从集合中设置标签

时间:2018-02-20 14:23:49

标签: neo4j cypher

我有很多标签作为输入。我想迭代并设置它。以下代码确实给出了错误:

<div class="row">
    <div class="col-xs-12 col-sm-12 col-lg-6">
        <ul class="list-group">
            @for ($i = 5; $i < 10; $i++)
              //code
            @endfor
        </ul>
    </div>

当我执行时,我收到以下消息:

  

警告:未定义变量MATCH (n:Node) WITH collect(n.lab) as labels FOREACH (x IN labels | SET n:x); (第3行,第28列(偏移量:73))   “FOREACH(x IN标签| SET n:x)”

1 个答案:

答案 0 :(得分:1)

首先,您忘记将n传递给下一个上下文。那就是:

WITH n, collect(n.lab) as labels 

其次,使用纯Cypher无法以这种方式设置标签。执行SET n:x后,您将在节点x中添加标签n。但是你可以使用APOC procedure apoc.create.addLabels这样做:

MATCH (n:Node)
WITH n, collect(n.lab) as labels
call apoc.create.addLabels(n, labels) yield node
return *