将一个标签的“属性键”合并到另一个标签中

你做
(:Label1 {emp_id: 1, name:"abc"})

(:Label1 {emp_id: 2, name:"xyz"})

(:Label1 {emp_id: 3, name:"pqr"})

INDEX ON :Label1(emp_id)

(:Label2 {emp_id: 1, car_name:"A"})

(:Label2 {emp_id: 1, car_name:"B"})

(:Label2 {emp_id: 1, car_name:"C"})

(:Label2 {emp_id: 2, car_name:"A"})

(:Label2 {emp_id: 2, car_name:"D"})

(:Label2 {emp_id: 3, car_name:"B"})

(:Label2 {emp_id: 3, car_name:"F"})

问题:我只需要保留 Label1 并且需要合并 Label1 中的键“car_name”。怎么做 ?

注:两个标签中的节点数都是百万,Label2节点几乎是Label1的两倍

托马兹·布拉塔尼奇

我将在您的位置上创建一个新标签 Car,其中包含有关 car_name 的信息,并将连接到标记为 Label1 的节点。稍后我将删除所有 Label2 节点,因为您不再需要它们了。

由于您有数百万个节点,因此最好使用 apoc.periodic.iterate 进行批处理。

CALL apoc.periodic.iterate(
"MATCH (l:Label1), (l2:Label2)
 WHERE l.emp_id = l2.emp_id return l,l2",
"MERGE (c:Car{car_name: l2.car_name})
 MERGE (l)-[:HAS_CAR]->(c)",
 {batchSize:5000, iterateList:true})

现在删除所有带有 label2 的节点

CALL apoc.periodic.iterate(
'MATCH (l:Label2) RETURN l',
'DETACH DELETE l',
{batchSize:1000,parallel:true})

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将一个元组序列合并到Scala中的另一个序列

删除另一个标签beautifulsoup中的标签

将多张图像合并到一个文档中,并向其添加任何标题/标签

将Ajax调用合并到一个脚本标签中

将源从一个SVN存储库合并到另一个?

通过VSTS API将一个分支合并到另一个分支

将一个对象合并到另一个对象

将一个foreach的元素合并到另一个

如何将一个系列的值合并到另一个系列

如何将一个 git 分支强行合并到另一个

将信息从一个列表合并到另一个 Scala

角度2:将一个可观察的“内部”合并到另一个

vscode-将一个分支合并到另一个分支

如何将一个分支更改合并到另一个分支?

将一个SQL查询的结果合并到另一个

如何将一个文件合并到另一个\ Linux

将一个文件夹与源合并到另一个

将一个数组合并到另一个数组

如何在保持其节点关系的同时重命名标签并将其合并到另一个标签中?

将一个分支合并到另一个分支的文件夹中

如何将一个模型的数据合并到另一个模型中?

使用 jq 将 JSON 中的一个字段合并到另一个 JSON

使用jQuery将一个标签替换为另一个标签

将多个dict合并到pyspark rdd中的另一个dict

将git repo合并到另一个repo的分支中

将存储库合并到另一个存储库的文件夹中

将1个数组的值合并到键相同的另一个数组

将标签的文本内容包装到javascript中的另一个标签中

如何将一个表单标签的元素带入javascript中的另一个表单标签