SET标签:将标签名称作为参数传递 [英] SET label : pass label name as parameter
问题描述
我有这样的查询:
将{data}展开为MERGE行(p:Book {guid:row.bookGuid}),并将p.name = row.name,p:Science设置为
unwind {data} as row with row MERGE (p:Book{guid:row.bookGuid}) set p.name=row.name, p:Science
我想将标签"Science"作为参数传递,因为我在{data}中传递的所有行的标签都不相同.
I want to pass the label 'Science' as a parameter as this label is not same for all the rows which I am passing in {data}.
我在下面的查询中尝试过,但这会引发语法错误.
I tried below query, but this is throwing syntax error.
具有以下参数:{guid:1,name:"testName1",label1:"Histroy"}
with parameter like: { guid:1, name:"testName1",label1:"Histroy"}
将{data}展开为MERGE行(p:Book {guid:row.bookGuid})设置为p.name = row.name,p:row.label1
unwind {data} as row with row MERGE (p:Book{guid:row.bookGuid}) set p.name=row.name, p:row.label1
有什么解决方法吗?
谢谢
推荐答案
您可以使用 APOC apoc.create.addLabels()
:
UNWIND {data} as row WITH row
MERGE (p:Book{guid:row.bookGuid})
SET p.name=row.name
CALL apoc.create.addLabels(id(p), [row.label1])
另一个例子: 使用Cypher和APOC将属性值移至标签
这篇关于SET标签:将标签名称作为参数传递的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!