CALL apoc.cypher.doIt创建动态节点的时候怎么指定多个标签?
发布于 5 年前 作者 crazyyanchao 2915 次浏览 来自 问答

下面的创建节点实例,请教一下CALL apoc.cypher.doIt如何创建多个标签?现在的方式是只能指定一个标签!

UNWIND 
[{name:"sdasdsad234fdgsasdfas33",properties:{born:1978},labels:"ables213"},{name:"ssds12ad23489gsasdfas33",properties:{born:1978,sex:"男性",age:22},labels:"label31"}] AS row
CALL apoc.cypher.doIt('MERGE (n:`' + row.labels + '` {name: {name}}) SET n += {properties}', {properties: row.properties, name: row.name}) YIELD value
RETURN 1
3 回复

写在set里面,set n += {properties},n:human

@zhoujieren64 用参数的形式传递怎么写呢? 例如这个会报错:

UNWIND 
[{name:"sdasdsad234fdgsasdfas33",properties:{born:1978},labels:"ables213",labelTest:"test"},{name:"ssds12ad23489gsasdfas33",properties:{born:1978,sex:"男性",age:22},labels:"label31",labelTest:"test"}] AS row
CALL apoc.cypher.doIt('MERGE (n:`' + row.labels + '` {name: {name}}) SET n += {properties},n:{labelTest}', {properties: row.properties, name: row.name,labelTest:row.labelTest}) YIELD value
RETURN 1

参考merge后面你写label的方式来加label字段吧,我试了下doit好像标签不能用传参的方式来处理

回到顶部