我们选择neo4j作为我们的Web应用程序的DB . 用户具有大量关系和连接的节点 . 截至目前,用户约有20个关系 . 其中一项功能是新闻源功能 . 如果我想完全删除用户,cypher查询是删除的最佳方式还是有其他选择?
由于我们仍在计划添加新功能,因此与用户相关的关系和节点也将增加 . 因此,如果我们使用密码查询,则必须针对添加的每个新关系修改查询 . 请指教 .
谢谢,帕万
是的,您可以使用Cypher删除用户 . 当然,还有其他方法,具体取决于您在Web应用程序中使用的语言或框架 . 如果您对此有所建议,请详细说明您如何使用Neo4j .
请注意,您必须先删除所有关系(传出和传入)才能删除该节点 .
例:
START n = node(3) MATCH n-[r]-() DELETE n, r
这个例子取自官方手册:http://docs.neo4j.org/chunked/milestone/query-delete.html
从Neo4j 2.3开始,还有另一种方法:
MATCH (n { name:'Andres' }) DETACH DELETE n
我在以下文档中找到了这个例子:http://neo4j.com/docs/stable/query-delete.html
另一种方法是编写一个gremlin脚本,该脚本从您的用户开始遍历您的图形,并将两个关系和您要删除的节点放在一起 . 如果你想删除所有内容,也许你可以在Gremlin中实现深度优先遍历并在遍历时删除 .
3 回答
是的,您可以使用Cypher删除用户 . 当然,还有其他方法,具体取决于您在Web应用程序中使用的语言或框架 . 如果您对此有所建议,请详细说明您如何使用Neo4j .
请注意,您必须先删除所有关系(传出和传入)才能删除该节点 .
例:
这个例子取自官方手册:http://docs.neo4j.org/chunked/milestone/query-delete.html
从Neo4j 2.3开始,还有另一种方法:
我在以下文档中找到了这个例子:http://neo4j.com/docs/stable/query-delete.html
另一种方法是编写一个gremlin脚本,该脚本从您的用户开始遍历您的图形,并将两个关系和您要删除的节点放在一起 . 如果你想删除所有内容,也许你可以在Gremlin中实现深度优先遍历并在遍历时删除 .