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