2016-07-20 98 views
0

Will Neo4j是否會爲使用'CREATE'查詢創建的所有節點自動生成唯一ID,如同Mysql中的'id'一樣?我們創建了在Neo4j中自動生成ID

CREATE (n: user{name:"x", age:10}) return n 

節點如果我們要更新「名稱」屬性,如何做到這一點的Neo4j的?

回答

2

有一個內部的ID,您可以

CREATE (n:User {name="x", age: 10}) RETURN n, id(n) as nodeId 

後來訪問的id()功能,您可以用

MATCH (n) WHERE id(n) = 12345 SET n.name = "y" 
2

從雖然文檔更新,

搜索通過id的節點可以通過謂詞中的id()函數完成。

當節點和關係被刪除時,Neo4j會重用其內部標識符。這意味着使用和依賴內部Neo4j ID的應用程序很脆弱或有犯錯的風險。因此推薦使用應用程序生成的ID。

這是一個好主意,因爲他們說,使用應用程序生成的ID作爲節點的屬性存儲。

MERGE(n:user {key:})return n SET n.name =「x」,age = 10