2015-04-23 154 views
2

我有一種方法可以創建一個包含節點和關係的圖形yadda。我想返回一個節點ID列表給我的調用者,以便後面的步驟可以快速找到這些節點並創建其他關係。我將無法返回節點實例。快速訪問Neo4j中的節點

在SQL世界中,我可以返回一個主鍵或唯一鍵。在neo4j世界中,我會返回什麼?有沒有一個獨特的節點標識符可以使用,而不需要自己進入地獄的第七層?我有自己的ID嗎?由於我沉浸在SQL中,所以我無法學習Neo4J的方式。

回答

2

每個節點(和關係)中的Neo4j具有ID這在技術上是在相應的數據存儲文件偏移指針。您需要注意,刪除某個節點並創建新節點可能會導致新節點具有來自之前使用節點的id(因爲它們會重複使用文件中的空閒區域)。

如果你確信你不會刪除你的圖什麼,你可以放心地使用內部節點ID,例如通過MATCH (n) RETURN id(n) limit 5。如果你使用的節點ID在你的圖表中刪除的東西是通向地獄之路的7級:-)

一個更安全的方法是指定節點引用的人工識別,例如一個uuid,把它放在索引中。有一些工具可用於此,例如https://github.com/graphaware/neo4j-uuid