Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除用户Neo4j中的所有关系和连接的节点_Neo4j_Spring Data Neo4j - Fatal编程技术网

删除用户Neo4j中的所有关系和连接的节点

删除用户Neo4j中的所有关系和连接的节点,neo4j,spring-data-neo4j,Neo4j,Spring Data Neo4j,我们选择neo4j作为web应用程序的数据库。用户拥有大量关系和连接的节点。到目前为止,一个用户大约有20个关系。其中一个功能是新闻提要功能。如果我想完全删除一个用户,密码查询是删除的最佳方式还是有其他选择 由于我们仍在计划添加新功能,因此连接到用户的关系和节点也将增加。因此,如果我们使用cypher查询,则必须为添加的每个新关系修改查询。请告知 谢谢, Pavan是的,您可以使用Cypher删除用户。当然,根据web应用程序使用的语言或框架,还有其他方法。如果您希望得到建议,请详细说明如何使用

我们选择neo4j作为web应用程序的数据库。用户拥有大量关系和连接的节点。到目前为止,一个用户大约有20个关系。其中一个功能是新闻提要功能。如果我想完全删除一个用户,密码查询是删除的最佳方式还是有其他选择

由于我们仍在计划添加新功能,因此连接到用户的关系和节点也将增加。因此,如果我们使用cypher查询,则必须为添加的每个新关系修改查询。请告知

谢谢,
Pavan

是的,您可以使用Cypher删除用户。当然,根据web应用程序使用的语言或框架,还有其他方法。如果您希望得到建议,请详细说明如何使用Neo4j

请注意,必须先删除所有关系(传出和传入),才能删除节点

例如:

START n = node(3)
MATCH n-[r]-()
DELETE n, r

此示例取自官方手册:

另一种方法是编写一个gremlin脚本,从用户开始遍历图形,并将关系和要删除的节点放入两个集合中。如果您想删除所有内容,也许可以在Gremlin中实现深度优先遍历,并在遍历时删除。

从Neo4j 2.3开始,还有另一种方法可以做到这一点:

MATCH (n { name:'Andres' })
DETACH DELETE n

我在文档中找到了这个例子:

谢谢阿莫格纳。是的,我在文档中看到过。这是与节点的直接关系。在我的例子中,关系是复杂的,像新闻提要这样的功能也存在。我想删除与该用户关联的所有节点。对于例如:newsfeed特性,我想在删除用户节点之前删除所有状态更新和关系。它是一个J2EE应用程序。我们使用的是spring数据neo4j。我们还使用cypher查询来检索数据。似乎您需要类似于“级联删除”的东西。这必须在应用程序级别上完成。我不确定SDN是如何处理的。在我们的框架Structr()中,您可以将级联删除规则定义为bean模型的一部分。SDN不处理级联删除,cypher比任何自定义配置语言更擅长描述复杂的删除操作。您还可以在之后过滤类型,即使使用参数:
START n=node(3)MATCH n-[r]-()其中,['FOO','BAR']中的类型(r)删除n,r