1
我刚刚开始使用Neo4j并运行“Hello World”类型的示例。删除的节点重新出现在Neo4j中
我创建一个新的数据库并打印出节点的数量,这是1(因为在创建数据库时似乎有一个默认节点)。
我创建一个节点并将其添加到图形中。该图报告现在有2个节点 - 确定。
然后我再次删除节点,图形报告有1个节点 - 确定。
然后我关闭了数据库。
但是,当我再次运行相同的代码(没有删除数据库文件)。它现在报告最初有2个节点。而不是1-2-1,我得到2-3-2。这只会发生一次 - 第一次运行后它总是报告2-3-2。
为什么我的删除节点重新出现,但只有第一次?下面
代码:
package com.foo.neo.example;
import org.neo4j.graphdb.*;
import org.neo4j.kernel.EmbeddedGraphDatabase;
public class Deleting
{
static GraphDatabaseService graphDb;
public static void main(String[] args)
{
graphDb = new EmbeddedGraphDatabase("data");
System.out.println("STARTED");
printNodeCount();
Node firstNode;
Transaction tx = graphDb.beginTx();
try
{
firstNode = graphDb.createNode();
tx.success();
}
finally
{
tx.finish();
}
printNodeCount();
// delete the data again
tx = graphDb.beginTx();
try
{
firstNode.delete();
tx.success();
}
finally
{
tx.finish();
}
printNodeCount();
graphDb.shutdown();
}
private static void printNodeCount()
{
long nodecount = ((EmbeddedGraphDatabase) graphDb).getConfig()
.getGraphDbModule().getNodeManager()
.getNumberOfIdsInUse(Node.class);
System.out.println("Node count = " + nodecount);
}
}
输出:
STARTED
Node count = 1
Node count = 2
Node count = 1
二(以及随后的)运行:
STARTED
Node count = 2
Node count = 3
Node count = 2
谢谢,将尝试 - 我是在遵循常见问题的建议,虽然:http://wiki.neo4j.org/content/FAQ#How_can_I_get_the_total_number_of_nodes_and_relationships_currently_in_Neo4j.3F – DNA
好的,那里的常见问题是错的,应该说,“当前分配的ID号“。 –
再次感谢 - 使用graphDb.getAllNodes()每次都会返回期望值1-2-1(尽管它已被弃用!)。 – DNA