使用Cypher如何获取图中的所有节点?我正在针对该图运行一些测试,并且有一些没有关系的节点,因此无法构建查询。
我想获取它们所有的原因是我想在每次测试开始时删除图中的所有节点。
我想获取它们所有的原因是我想在每次测试开始时删除图中的所有节点。
那么,这将给你所有节点:
MATCH (n)
RETURN n;
如果您想从图形中删除所有内容,可以这样做:
MATCH (n)
OPTIONAL MATCH (n)-[r]-()
DELETE n, r;
针对2.0+版本进行了更新。
编辑:
现在在2.3版本中,它们有了DETACH DELETE
,所以你可以做类似这样的事情:
MATCH (n)
DETACH DELETE n;
这对你有用吗?
START a=node:index_name('*:*')
假设你有一个包含这些孤立节点的索引。
在2.0版本中,这个功能可以正常工作:
MATCH n RETURN n
MATCH (n) RETURN n;
- pyb使用4.4及更高版本,您可以利用CALL {} IN TRANSACTIONS语法。
MATCH (n:Foo) where n.foo='bar'
CALL { WITH n
DETACH DELETE n
} IN TRANSACTIONS OF 10000 ROWS;
call apoc.periodic.iterate("MATCH (n:Foo) where n.foo='bar' return id(n) as id", "MATCH (n) WHERE id(n) = id DETACH DELETE n", {batchSize:10000})
yield batches, total return batches, total
关于在neo4j中删除大量数据的最佳实践,请遵循这些指南。