我们选择 neo4j 作为我们 Web 应用程序的数据库。用户有大量的关系和连接的节点。截至目前,一个用户大约有 20 个关系。其中一项功能是新闻源功能。如果我想完全删除用户,密码查询是最好的删除方式还是有其他选择?
由于我们仍在计划添加新功能,因此连接到用户的关系和节点也会增加。因此,如果我们使用密码查询,则必须针对添加的每个新关系修改查询。请指教。
谢谢,帕万
我们选择 neo4j 作为我们 Web 应用程序的数据库。用户有大量的关系和连接的节点。截至目前,一个用户大约有 20 个关系。其中一项功能是新闻源功能。如果我想完全删除用户,密码查询是最好的删除方式还是有其他选择?
由于我们仍在计划添加新功能,因此连接到用户的关系和节点也会增加。因此,如果我们使用密码查询,则必须针对添加的每个新关系修改查询。请指教。
谢谢,帕万
是的,您可以使用 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 中实现深度优先遍历并在遍历时删除。