據我瞭解,由Neo4j(ID(node)
)給出的ID是不穩定的,行爲有點像SQL中的行號。由於ID主要用於SQL中的關係,並且這些在Neo4j中很容易建模,所以ID似乎沒有多大用處,但是如何解決特定節點的檢索問題?對於每個節點而言,擁有一個應該具有唯一路由的REST API(例如/api/concept/23
)似乎是Web應用程序的一個非常標準的情況。 但是,儘管它是如此基本,我發現的唯一可行的辦法是要麼通過Neo4j中的自動遞增屬性
- 特定語言的框架
- 作爲保持增量未連接的節點:
// get unique id
MERGE (id:UniqueId{name:'Person'})
ON CREATE SET id.count = 1
ON MATCH SET id.count = id.count + 1
WITH id.count AS uid
// create Person node
CREATE (p:Person{id:uid,firstName:'Gabriel',lastName:'Smith'})
RETURN p AS person
來源:http://www.neo4j.org/graphgist?8012859
難道真的沒有一個簡單的方法,如果不是,我有沒有特別的理由呢?我的方法在Neo4j中是否爲反模式?
這不回答這個問題。自動增量ID可用於按創建順序對對象進行排序,這是uuid無法完成的。 – 2016-08-29 10:34:40
您的評論回答的問題是什麼? – 2016-08-29 11:54:56
我相信給隨機唯一字符串添加一個unix時間戳或某種日期 - 時間前綴可以解決排序問題。 – Guy 2017-10-01 18:17:57