neo4j:在外部设置 apoc.create.uuid() 会导致替换



对不起,不知道我应该放什么标题。使用下面的查询进行解释。

UNWIND $data as data
MERGE (d:Device {cell_id: data.cell_id})
ON CREATE SET d+= data
WITH d
SET d._uuid = apoc.create.uuid()
MERGE (g:Device_Group {group_name: $GROUP_NAME})
WITH g,d
MERGE (g)-[:GROUPS]->(d)

我收到的细胞数据经常更新,有时会添加新设备。我还想为每个相应的设备设置一个 UUID。因此,我使用 apoc.create.uuid((。但是,当设备更新时,会创建一个新的 uuid 来替换旧 uuid。我的问题是我不希望每次更新设备时 UUID 都会更改。

提前感谢您的帮助。

您可以在ON CREATE SET内移动设置UUID,以便它仅在创建节点时添加UUID,并在节点更新时忽略它。

UNWIND $data as data
MERGE (d:Device {cell_id: data.cell_id})
ON CREATE SET 
d+= data,
d._uuid = apoc.create.uuid()
WITH d
MERGE (g:Device_Group {group_name: $GROUP_NAME})
WITH g,d
MERGE (g)-[:GROUPS]->(d)

最新更新