【问题标题】:Neo4j Cypher - Removing existing node/edge if not in CSV Load FileNeo4j Cypher - 如果不在 CSV 加载文件中,则删除现有节点/边缘
【发布时间】:2016-11-29 15:36:24
【问题描述】:

我正在尝试确定一种使 csv 文件成为更新 Neo4j 中所有元素的一站式商店的方法。我能够创建一个加载、创建和更新节点和关系的密码表达式。我现在要做的是开发一个密码表达式,它可以识别 Neo4j 中的现有节点/关系是否仍在新的 csv 加载文件中。如果它不再在文件中,请将其从 Neo4j 中删除。这可能吗?我正在处理一个相当大的数据集,并希望避免一次性删除。请让我知道是否有其他解决方案也适用于此。

【问题讨论】:

  • “这可能吗”问题对于 StackOverflow 来说通常过于模糊,如果您将问题发布在“这是我的数据:”“这是我尝试的函数做我想做的” “这是我的输出不起作用。” ---如果您不知道如何“尝试”,请继续寻找! :)

标签: csv neo4j nodes delete-row relationships


【解决方案1】:

您可以这样做的一种方法是向 CSV 中使用的所有节点添加 :Processed 标签,并为 CSV 中使用的关系添加“已处理”属性。然后,在您的导入/更新运行并且所有包含的节点和属性都已像这样注释后,运行查询以匹配没有 :Processed 标签的节点和没有“已处理”属性的关系,然后删除它们。然后,通过删除所有注释进行清理。

【讨论】:

  • 这太好了,我能够让这个解决方案发挥作用。谢谢!
猜你喜欢
  • 1970-01-01
  • 2014-08-22
  • 2013-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多