2016-07-13 110 views
0

我正在寻找任何方式将标签从一个节点复制到另一个节点。我发现这个帖子How can we copy labels from one node to another in one cypher?。但它看起来像auther询问简单的方法来做到这一点。我正在寻找任何解决方案,像遍历标签列表。我试过这个如何将标签从一个节点复制到另一个节点?

Create (q:Label1:G2:Label2{id: 14111, t: 99999999999999})- 
[r1:CONSISTS_OF{t:99999999999999}]-> 
(g1:Label1:G1:Label2:Label3{t: 99999999999999, name:'name1'}), 
(q)-[r221:CONSISTS_OF{t:99999999999999}]-> 
(g2:Label1:G1:Label2:Label4{t: 99999999999999, name:'name2'}), 
(q)-[r2:CONSISTS_OF{t_end:99999999999999}]-> 
(g2123:Label1:G1:Label2:Label3{t_end: 99999999999999, name_ru:'name2'}) 
return * 

Match (g2:G2)-->(g1:G1) with g1 
Create (g1Instance) set g1Instance = g1 
FOREACH (n IN labels(g1) | set g1Instance: n) return g1Instance 

但是代替标签(g1)它将标签“n”设置为g1Instance。

回答

1

正如前文所说@cybersam

不幸的是,目前的标签不能直接从数据 值设定。

但是你可以使用APOC程序addLabels

MERGE (T:TestLabel) WITH T 
CALL apoc.create.addLabels([ id(T) ], ['Label1','Label2']) YIELD node 
RETURN node 
相关问题