Neo4j Cypher Batch Query动态传递节点标签和属性键(通过Map的参数列表)

3ks5zfa0  于 2023-03-12  发布在  其他
关注(0)|答案(1)|浏览(193)

我想使用从$batch参数列表中动态检索的标签和属性键来创建节点。
我以为这会有用:

UNWIND $batch as row
MERGE (s:CAR:row.label {row.key: row.value})

每个row类似于:{label: 'typeA', key: 'Mileage', value: 20}
目前,查询仅在标签和键为静态类型时有效。它不接受标签和属性键key的动态值。动态值仅对属性值有效。
也就是说,它仅在查询为以下情况时有效:

UNWIND $batch as row
MERGE (s:CAR:typeA {Mileage: row.value}

有什么办法能达到我的目的吗?

pu3pd22g

pu3pd22g1#

您可以使用apoc.merge.node过程来完成此操作,该过程允许动态指定节点标签和属性:

UNWIND $batch as row
CALL apoc.merge.node([row.label], apoc.map.fromValues([row.key, row.value]);

相关问题