用cyper获取neo4j的内部唯一ID并将其分配给我的对象
Get neo4j's internal unique ID with cyper and assign it to my object
我正在创建一个这样的新对象,此时它有一个占位符 ID:
var query = client.Cypher
.Create("(e:Example{newExample})")
.WithParam("newExample", newExample)
.Return(e => e.As<Example>())
.Results;
但是我的对象需要一个唯一的 ID,我需要从服务器等请求它。Neo4j 在内部对所有节点都有一个唯一的 ID。有没有办法从 neo4j 检索这个 ID 并将其分配给我的对象 ID?
我读到过,这通常是个坏主意,因为在删除节点后可以从 neo4j 重用 ID。但是由于具有此节点 ID 的对象是此节点,因此该 ID 对我来说也不再存在。所以我看不出有什么反对的。
否则我可以使用我知道的 GUID。
您可以使用以下密码获取内部节点ID:
CREATE (e:Example)
RETURN id(e) as id
Neo4j 也有适用于此类情况的 randomUUID()
过程。查看 documentation 了解更多信息。
CREATE (e:Example{id:randomUUID()})
RETURN e.id as id
我正在创建一个这样的新对象,此时它有一个占位符 ID:
var query = client.Cypher
.Create("(e:Example{newExample})")
.WithParam("newExample", newExample)
.Return(e => e.As<Example>())
.Results;
但是我的对象需要一个唯一的 ID,我需要从服务器等请求它。Neo4j 在内部对所有节点都有一个唯一的 ID。有没有办法从 neo4j 检索这个 ID 并将其分配给我的对象 ID?
我读到过,这通常是个坏主意,因为在删除节点后可以从 neo4j 重用 ID。但是由于具有此节点 ID 的对象是此节点,因此该 ID 对我来说也不再存在。所以我看不出有什么反对的。
否则我可以使用我知道的 GUID。
您可以使用以下密码获取内部节点ID:
CREATE (e:Example)
RETURN id(e) as id
Neo4j 也有适用于此类情况的 randomUUID()
过程。查看 documentation 了解更多信息。
CREATE (e:Example{id:randomUUID()})
RETURN e.id as id