如何解决使用cyper获取neo4j的内部唯一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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。