gpt4 book ai didi

Neo4j 密码 : Merge duplicate nodes

转载 作者:行者123 更新时间:2023-12-02 18:20:47 25 4
gpt4 key购买 nike

我有一些重复的节点,所有节点都带有标签 Tag。我所说的重复项是指我有两个具有相同名称属性的节点,例如:

{ name: writing, _id: 57ec2289a90f9a2deece7e6d},
{ name: writing, _id: 57db1da737f2564f1d5fc5a1},
{ name: writing }

不再使用 _id 字段,因此在所有效果中这三个节点都是相同的,只是它们各自具有不同的关系。

我想做的是:

  1. 查找所有重复节点(检查)

    MATCH (n:Tag)
    WITH n.name AS name, COLLECT(n) AS nodelist, COUNT(*) AS count
    WHERE count > 1
    RETURN name, nodelist, count
  2. 将重复节点中的所有关系复制到第一个节点

  3. 删除所有重复节点

这可以通过密码查询来实现吗?或者我必须用某种编程语言编写脚本吗? (这是我试图避免的)

最佳答案

APOC程序有一些graph refactoring procedures这会有所帮助。我认为 apoc.refactor.mergeNodes() 应该可以解决问题。

请注意,除了将所有关系从其他节点传输到列表的第一个节点之外,它还会将其他节点的任何标签和属性应用到第一个节点。如果这不是您想要做的事情,那么您可能必须从其他节点收集传入和传出关系并使用 apoc.refactor.to()apoc.refactor.from() 相反。

这是合并节点的查询:

MATCH (n:Tag)
WITH n.name AS name, COLLECT(n) AS nodelist, COUNT(*) AS count
WHERE count > 1
CALL apoc.refactor.mergeNodes(nodelist) YIELD node
RETURN node

关于Neo4j 密码 : Merge duplicate nodes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42800137/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com