我的问题肯定是Neo4j Spatial - How To Delete A Node的副本,但尚未解决。
据我所知,从空间索引中删除节点目前尚未在neo4j-spatial-plugin中实现(未记录)。
现在我的问题是:"我如何自己做这个?"我可以看到索引的所有节点,但是如何查询引用我要删除的节点的那个节点?而且:我可以从索引中删除该节点而不会损害其他任何内容吗?
谢谢: - )
答案 0 :(得分:3)
是。你是对的。正如this link所说,这是一个已知的问题,并且它很长时间以来仍然是开放的。
现在,回答您的问题,您可以按照以下步骤手动执行此操作。
"id"
属性。每当将任何节点添加到索引(假设为'geom')时,就会为该节点添加UNIQUE RTREE_REFERENCE
。 NEO4J
为该引用分配唯一ID。这个分配的“id”不同于用于索引node.e.g的“id”。我们考虑使用id:7577
将带有localhost:7474/db/data/node/7577
的“用户”节点添加到索引“geom”中。
现在,在创建此索引之后,您可以使用Neo4j浏览器中的以下命令检查它RTREE_REFERENCE
。MATCH (a)-[:RTREE_REFERENCE]->(b) where b.id=7577 return b;
我们需要获取节点“b”的“内部”id,我们可以通过在Neo4j浏览器中触发以下命令来完成此操作。 MATCH (a)-[:RTREE_REFERENCE]->(b) where b.id=7577 return id(b);
MATCH (a)-[:RTREE_REFERENCE]->(b) where b.id=7577 return id(b);
,您将获得“无行”。因为RTREE_REFERENCE
已被删除。注意: 上述所有步骤也可以使用Java / .Net / PHP中的任何HttpClient从代码中自动完成。
希望这能回答你的两个问题
由于