我们使用Neo4j图数据库进行写入数据操作之后,免不了要删除数据的。
但是Neo4j的控制台没有提供快捷的删除按钮,所以我们还是需要通过命令来操作。
如果数据库中的数据量并不大,节点数相对较少,我们可以通过命令行直接删除节点。
此类操作起到清空数据库的效果,但是不会删除数据库
这里列举两种常用的删除数据的用法:
【一】、删除对应节点及其所有关系
也就是说,只要符合键值对 { property-name:value } 条件的节点都会被删除
match (n {<property-name>:<value>} ) detach delete (n)
示例:
//创建节点
merge(t:Test{id:01,name:"hh"})
merge(t:test{id:02,name:"hh"})
//name为hh的两个节点及其关系都会删除
match (n{name:"hh"}) detach delete (n)
【二】、删除所有节点及其所有关系
此命令不用筛选条件,直接将数据库中的所有节点及关系全部删除
match (n) detach delete (n)
如果数据库中的数据量很大,节点数非常多,通过命令行删除会比较慢,那么我们可以通过物理方式直接删除数据库。
此类操作直接删除了数据库,数据当然都被清空了
首先,我们需要关闭 Neo4j 数据库的运行
然后找到 Neo4j 数据库的存放目录,也就是 <NEO4J_HOME>/data/
。
如果忘记了 NEO4J_HOME 可以去环境变量中查看
Neo4j 的 3.x 版本下有一个 databases
文件夹,进入这个文件夹,里面有一个 graph.db 的文件夹和一个 store_lock 文件。
这个 graph.db
文件夹就是我们当前使用的数据库,直接删除即可。
Neo4j 的 4.x 版本下有一个 databases
文件夹和一个 transactions
文件夹,两个文件夹下都有 graph.db。
我们将这两个文件夹下的 graph.db 都删除即可。